chiark / gitweb /
tests: add test for unit name printing
[elogind.git] / src / modules-load / modules-load.c
index 06e1a8cc84143b519ba6df1c6ea9e34ed5174bad..f6279e1975267b50645f72514cfcab5ada0b18c4 100644 (file)
@@ -41,7 +41,7 @@ static char **arg_proc_cmdline_modules = NULL;
 static void systemd_kmod_log(void *data, int priority, const char *file, int line,
                              const char *fn, const char *format, va_list args)
 {
-        log_meta(priority, file, line, fn, format, args);
+        log_metav(priority, file, line, fn, format, args);
 }
 #pragma GCC diagnostic pop
 
@@ -49,17 +49,13 @@ static int add_modules(const char *p) {
         char **t, **k;
 
         k = strv_split(p, ",");
-        if (!k) {
-                log_error("Out of memory");
-                return -ENOMEM;
-        }
+        if (!k)
+                return log_oom();
 
         t = strv_merge(arg_proc_cmdline_modules, k);
         strv_free(k);
-        if (!t) {
-                log_error("Out of memory");
-                return -ENOMEM;
-        }
+        if (!t)
+                return log_oom();
 
         strv_free(arg_proc_cmdline_modules);
         arg_proc_cmdline_modules = t;
@@ -68,7 +64,8 @@ static int add_modules(const char *p) {
 }
 
 static int parse_proc_cmdline(void) {
-        char *line, *w, *state;
+        char _cleanup_free_ *line = NULL;
+        char *w, *state;
         int r;
         size_t l;
 
@@ -82,38 +79,30 @@ static int parse_proc_cmdline(void) {
         }
 
         FOREACH_WORD_QUOTED(w, l, line, state) {
-                char *word;
+                char _cleanup_free_ *word;
 
                 word = strndup(w, l);
-                if (!word) {
-                        r = -ENOMEM;
-                        goto finish;
-                }
+                if (!word)
+                        return log_oom();
 
-                if (startswith(word, "driver=")) {
+                if (startswith(word, "modules-load=")) {
 
-                        r = add_modules(word + 7);
+                        r = add_modules(word + 13);
                         if (r < 0)
-                                goto finish;
+                                return r;
 
-                } else if (startswith(word, "rd.driver=")) {
+                } else if (startswith(word, "rd.modules-load=")) {
 
                         if (in_initrd()) {
-                                r = add_modules(word + 10);
+                                r = add_modules(word + 16);
                                 if (r < 0)
-                                        goto finish;
+                                        return r;
                         }
 
                 }
-
-                free(word);
         }
 
-        r = 0;
-
-finish:
-        free(line);
-        return r;
+        return 0;
 }
 
 static int load_module(struct kmod_ctx *ctx, const char *m) {
@@ -131,7 +120,7 @@ static int load_module(struct kmod_ctx *ctx, const char *m) {
 
         if (!modlist) {
                 log_error("Failed to find module '%s'", m);
-                return r;
+                return -ENOENT;
         }
 
         kmod_list_foreach(itr, modlist) {
@@ -175,7 +164,7 @@ static int load_module(struct kmod_ctx *ctx, const char *m) {
 
 int main(int argc, char *argv[]) {
         int r = EXIT_FAILURE, k;
-        char **files, **fn, **i;
+        char **files = NULL, **fn, **i;
         struct kmod_ctx *ctx;
 
         if (argc > 1) {