From: Yauheni Kaliuta Date: Sun, 29 Nov 2020 16:47:36 +0000 (+0200) Subject: depmod: output_builtin_alias_bin: free idx on error path X-Git-Tag: v28~10 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bd96d05256db2ff9a89dbe2e8bb6e26fcb800052;p=thirdparty%2Fkmod.git depmod: output_builtin_alias_bin: free idx on error path idx is allocated in the beginning but it's not freed if there is a failure after the allocation. Change the error path: return immediately if idx allocation fails and then free it in both success and error path at the end. Signed-off-by: Yauheni Kaliuta --- diff --git a/tools/depmod.c b/tools/depmod.c index 875e3148..2c03dfe7 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -2412,10 +2412,8 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out) return 0; idx = index_create(); - if (idx == NULL) { - ret = -ENOMEM; - goto fail; - } + if (idx == NULL) + return -ENOMEM; ret = kmod_module_get_builtin(depmod->ctx, &builtin); if (ret < 0) { @@ -2458,13 +2456,12 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out) if (count) index_write(idx, out); - - index_destroy(idx); - fail: if (builtin) kmod_module_unref_list(builtin); + index_destroy(idx); + return ret; }