]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
depmod: do not output .bin to stdout
authorLucas De Marchi <lucas.demarchi@intel.com>
Thu, 5 Mar 2020 21:33:10 +0000 (13:33 -0800)
committerLucas De Marchi <lucas.demarchi@intel.com>
Fri, 13 Mar 2020 16:23:58 +0000 (09:23 -0700)
index_write() relies on fseek/ftell to manage the position to which we
are write and thus needs the file stream to support it.

Right now when trying to write the index to stdout we fail with:

depmod: tools/depmod.c:416: index_write: Assertion `initial_offset >= 0' failed.
Aborted (core dumped)

We have no interest in outputting our index to stdout, so just skip it
like is done with other indexes.

While at it, add/remove some newlines to improve readability.

Reported-by: Yanko Kaneti <yaneti@declera.com>
Fix: b866b2165ae6 ("Lookup aliases in the modules.builtin.modinfo")

tools/depmod.c

index fbbce10eb0db48bda2361072c83f0f96e955df26..875e31480818c4a2a32709dbc3911fbbf8942774 100644 (file)
@@ -2408,8 +2408,10 @@ static int output_builtin_alias_bin(struct depmod *depmod, FILE *out)
        struct index_node *idx;
        struct kmod_list *l, *builtin = NULL;
 
-       idx = index_create();
+       if (out == stdout)
+               return 0;
 
+       idx = index_create();
        if (idx == NULL) {
                ret = -ENOMEM;
                goto fail;
@@ -2456,7 +2458,9 @@ 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);