chiark / gitweb /
kmod-setup: improve for "kdbus" word on the kernel cmdline
authorLennart Poettering <lennart@poettering.net>
Fri, 14 Nov 2014 17:02:30 +0000 (18:02 +0100)
committerLennart Poettering <lennart@poettering.net>
Fri, 14 Nov 2014 17:02:30 +0000 (18:02 +0100)
We really shouldn't check for words with "strstr()"...

src/core/kmod-setup.c

index 23df1fd..fd0a0e0 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