]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
depmod: unconditionally write builtin.alias.bin
authorLucas De Marchi <lucas.demarchi@intel.com>
Fri, 18 Dec 2020 16:02:07 +0000 (08:02 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Mon, 28 Dec 2020 00:40:08 +0000 (16:40 -0800)
The file is always created and unless we return an error, the temporary
file is renamed to its final destination. All other places write the
index without checking if the index is empty, so just do the same.

Reported-by: Joe Buehler <aspam@cox.net>
tools/depmod.c

index 2c03dfe7dc28406d3dc3a7c2ab04c4a3e2c9f802..3f31cdfbd1782e0c1b9d28eeb909bf3de2f67aa6 100644 (file)
@@ -2419,7 +2419,7 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out)
        if (ret < 0) {
                if (ret == -ENOENT)
                        ret = 0;
-               goto fail;
+               goto out;
        }
 
        kmod_list_foreach(l, builtin) {
@@ -2429,7 +2429,7 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out)
 
                ret = kmod_module_get_info(mod, &info_list);
                if (ret < 0)
-                       goto fail;
+                       goto out;
 
                kmod_list_foreach(ll, info_list) {
                        char alias[PATH_MAX];
@@ -2454,9 +2454,11 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out)
                count++;
        }
 
-       if (count)
+out:
+       /* do not bother writing the index if we are going to discard it */
+       if (!ret)
                index_write(idx, out);
-fail:
+
        if (builtin)
                kmod_module_unref_list(builtin);