depmod: output_builtin_alias_bin: free idx on error path
authorYauheni Kaliuta <yauheni.kaliuta@redhat.com>
Sun, 29 Nov 2020 16:47:36 +0000 (18:47 +0200)
committerLucas De Marchi <lucas.demarchi@intel.com>
Tue, 1 Dec 2020 08:44:17 +0000 (00:44 -0800)
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 <yauheni.kaliuta@redhat.com>
tools/depmod.c

index 875e314..2c03dfe 100644 (file)
@@ -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;
 }