libkmod: fix possible double free with wrong modules.builtin.modinfo
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 13 Apr 2021 11:23:15 +0000 (20:23 +0900)
committerLucas De Marchi <lucas.demarchi@intel.com>
Sat, 17 Apr 2021 20:41:42 +0000 (13:41 -0700)
Fix double free for *modinfo with non '\0' terminated wrong
modules.builtin.modinfo, which is because EOF is minus value.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
libkmod/libkmod-builtin.c

index a75a542..a002cb5 100644 (file)
@@ -313,7 +313,7 @@ ssize_t kmod_builtin_get_modinfo(struct kmod_ctx *ctx, const char *modname,
        while (offset < iter->next) {
                offset = get_string(iter, pos, &line, &linesz);
                if (offset <= 0) {
-                       count = (offset) ? -errno : -EOF;
+                       count = (offset) ? -errno : -EINVAL;
                        free(*modinfo);
                        goto fail;
                }