diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2017-06-11 12:20:59 +0200 |
---|---|---|
committer | Alexander Couzens <lynxis@fe80.eu> | 2017-06-11 14:30:20 +0200 |
commit | a0b6feff3b0e8ef56470f20e30f93d012dffc290 (patch) | |
tree | f6a078c05a50728939f44eb7e50fcb20e330a02b /kmodloader.c | |
parent | 278c4c46a807414f887a8d6fdf1f50e673ac9551 (diff) | |
download | ubox-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.c | 10 |
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; } |