kmodloader: insmod: fix a memoryleak in error case
[project/ubox.git] / kmodloader.c
index 9aba523..3b7ec8b 100644 (file)
@@ -691,22 +691,24 @@ static int main_insmod(int argc, char **argv)
 
        if (init_module_folders()) {
                fprintf(stderr, "Failed to find the folder holding the modules\n");
-               return -1;
+               ret = -1;
+               goto err;
        }
 
        if (get_module_path(argv[1])) {
                name = argv[1];
        } else if (!get_module_path(name)) {
                fprintf(stderr, "Failed to find %s. Maybe it is a built in module ?\n", name);
-               return -1;
+               ret = -1;
+               goto err;
        }
 
        ret = insert_module(get_module_path(name), options);
-       free(options);
-
        if (ret)
                ULOG_ERR("failed to insert %s\n", get_module_path(name));
 
+err:
+       free(options);
        return ret;
 }