mirror of
https://github.com/systemd/systemd.git
synced 2024-10-27 10:25:37 +03:00
core: don't synthesize empty list when empty string is read in config_parse_strv()
This was added to make https://bugs.freedesktop.org/show_bug.cgi?id=62558 work, which has long been removed, hence let's revert to the original behaviour and fully flush out the list when an empty string is assigned.
This commit is contained in:
parent
60c776fd75
commit
8249bb728d
@ -755,16 +755,17 @@ finalize:
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_strv(const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
int config_parse_strv(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
const char *section,
|
||||
unsigned section_line,
|
||||
const char *lvalue,
|
||||
int ltype,
|
||||
const char *rvalue,
|
||||
void *data,
|
||||
void *userdata) {
|
||||
|
||||
char ***sv = data;
|
||||
int r;
|
||||
@ -775,19 +776,7 @@ int config_parse_strv(const char *unit,
|
||||
assert(data);
|
||||
|
||||
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(*sv);
|
||||
*sv = empty;
|
||||
|
||||
*sv = strv_free(*sv);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -809,6 +798,7 @@ int config_parse_strv(const char *unit,
|
||||
free(word);
|
||||
continue;
|
||||
}
|
||||
|
||||
r = strv_consume(sv, word);
|
||||
if (r < 0)
|
||||
return log_oom();
|
||||
|
Loading…
Reference in New Issue
Block a user