summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorSusant Sahani <ssahani@gmail.com>2015-10-28 22:58:24 +0530
committerSusant Sahani <ssahani@gmail.com>2015-10-28 22:58:24 +0530
commit03da651313621aeffac06409b19151e9e6a0c329 (patch)
treee81202eb6713959944db1826296ed2c3927a38db /src/shared
parentb1f48e3c94d09b28a8325eed55f6c3cbb719ce4b (diff)
install: port to extract_first_word
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/install.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/shared/install.c b/src/shared/install.c
index c74efede76..b7d1d22505 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -929,8 +929,6 @@ static int config_parse_also(
void *data,
void *userdata) {
- size_t l;
- const char *word, *state;
InstallContext *c = data;
UnitFileInstallInfo *i = userdata;
@@ -938,13 +936,18 @@ static int config_parse_also(
assert(lvalue);
assert(rvalue);
- FOREACH_WORD_QUOTED(word, l, rvalue, state) {
- _cleanup_free_ char *n;
+ for(;;) {
+ _cleanup_free_ char *n = NULL;
int r;
- n = strndup(word, l);
- if (!n)
- return -ENOMEM;
+ r = extract_first_word(&rvalue, &n, NULL, 0);
+ if (r < 0) {
+ log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse config %s, ignoring.", rvalue);
+ return 0;
+ }
+
+ if (r == 0)
+ break;
r = install_info_add(c, n, NULL);
if (r < 0)
@@ -954,8 +957,6 @@ static int config_parse_also(
if (r < 0)
return r;
}
- if (!isempty(state))
- log_syntax(unit, LOG_ERR, filename, line, 0, "Trailing garbage, ignoring.");
return 0;
}