journald-server: port to extract_first_word
authorSusant Sahani <ssahani@gmail.com>
Mon, 26 Oct 2015 09:58:03 +0000 (15:28 +0530)
committerSusant Sahani <ssahani@gmail.com>
Mon, 26 Oct 2015 10:02:08 +0000 (15:32 +0530)
src/journal/journald-server.c

index 140d406..0ef1a7d 100644 (file)
@@ -1287,8 +1287,7 @@ static int setup_signals(Server *s) {
 
 static int server_parse_proc_cmdline(Server *s) {
         _cleanup_free_ char *line = NULL;
-        const char *w, *state;
-        size_t l;
+        const char *p;
         int r;
 
         r = proc_cmdline(&line);
@@ -1297,12 +1296,16 @@ static int server_parse_proc_cmdline(Server *s) {
                 return 0;
         }
 
-        FOREACH_WORD_QUOTED(w, l, line, state) {
+        p = line;
+        for(;;) {
                 _cleanup_free_ char *word;
 
-                word = strndup(w, l);
-                if (!word)
-                        return -ENOMEM;
+                r = extract_first_word(&p, &word, NULL, 0);
+                if (r < 0)
+                        return log_error_errno(r, "Failed to parse journald syntax \"%s\": %m", line);
+
+                if (r == 0)
+                        break;
 
                 if (startswith(word, "systemd.journald.forward_to_syslog=")) {
                         r = parse_boolean(word + 35);