summaryrefslogtreecommitdiff
path: root/kmodloader.c
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2017-06-11 12:20:59 +0200
committerAlexander Couzens <lynxis@fe80.eu>2017-06-11 14:30:20 +0200
commita0b6feff3b0e8ef56470f20e30f93d012dffc290 (patch)
treef6a078c05a50728939f44eb7e50fcb20e330a02b /kmodloader.c
parent278c4c46a807414f887a8d6fdf1f50e673ac9551 (diff)
downloadubox-a0b6feff3b0e8ef56470f20e30f93d012dffc290.tar.gz
kmodloader: insmod: fix a memoryleak in error case
Found-by: Coverity Scan #1412469 Signed-off-by: Alexander Couzens <lynxis@fe80.eu>
Diffstat (limited to 'kmodloader.c')
-rw-r--r--kmodloader.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/kmodloader.c b/kmodloader.c
index 9aba523..3b7ec8b 100644
--- a/kmodloader.c
+++ b/kmodloader.c
@@ -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;
}