chiark / gitweb /
kmod-setup: improve for "kdbus" word on the kernel cmdline
[elogind.git] / src / core / kmod-setup.c
index 23df1fdf36d12569a291e24aa0950a1785c40333..fd0a0e06adcdff080d7af7512a216ebb25e4bca8 100644 (file)
@@ -50,11 +50,24 @@ static void systemd_kmod_log(
 
 static bool cmdline_check_kdbus(void) {
         _cleanup_free_ char *line = NULL;
+        const char *p;
+        int r;
 
-        if (proc_cmdline(&line) < 0)
+        r = proc_cmdline(&line);
+        if (r < 0)
                 return false;
 
-        return strstr(line, "kdbus") != NULL;
+        p = line;
+        for (;;) {
+                _cleanup_free_ char *word = NULL;
+
+                r = unquote_first_word(&p, &word, true);
+                if (r <= 0)
+                        return false;
+
+                if (streq(word, "kdbus"))
+                        return true;
+        }
 }
 #endif