socket: Symlinks= with empty string resets the list of paths.

This commit is contained in:
Yu Watanabe 2017-09-05 15:08:59 +09:00
parent 2f34bead2c
commit 499295fb46
2 changed files with 19 additions and 2 deletions

View file

@ -803,8 +803,8 @@
is used, only one AF_UNIX socket in the file system or one
FIFO may be configured for the socket unit. Use this option to
manage one or more symlinked alias names for a socket, binding
their lifecycle together. Defaults to the empty
list.</para></listitem>
their lifecycle together. If the empty string is assigned, the
list of paths is reset. Defaults to the empty list.</para></listitem>
</varlistentry>
<varlistentry>

View file

@ -283,6 +283,23 @@ int config_parse_unit_path_strv_printf(
assert(rvalue);
assert(u);
if (isempty(rvalue)) {
char **empty;
/* Empty assignment resets the list. As a special rule
* we actually fill in a real empty array here rather
* than NULL, since some code wants to know if
* something was set at all... */
empty = new0(char*, 1);
if (!empty)
return log_oom();
strv_free(*x);
*x = empty;
return 0;
}
for (p = rvalue;;) {
_cleanup_free_ char *word = NULL, *k = NULL;