]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
depmod: Check memdup return value
authorTobias Stoeckmann <tobias@stoeckmann.org>
Fri, 27 Sep 2024 20:17:11 +0000 (22:17 +0200)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Tue, 1 Oct 2024 14:12:18 +0000 (09:12 -0500)
If memdup fails, handle out of memory condition.

Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Link: https://github.com/kmod-project/kmod/pull/158
Signed-off-by: Lucas De Marchi <lucas.de.marchi@gmail.com>
tools/depmod.c

index 619997303e493493b402df4f26d3bc0242cecc0a..7d1f3febefbfc6a259fb3f7768213714c1d78df0 100644 (file)
@@ -1066,6 +1066,11 @@ static int depmod_module_add(struct depmod *depmod, struct kmod_module *kmod)
                size_t uncrelpathlen = lastslash - mod->relpath + modnamesz +
                                       strlen(KMOD_EXTENSION_UNCOMPRESSED);
                mod->uncrelpath = memdup(mod->relpath, uncrelpathlen + 1);
+               if (mod->uncrelpath == NULL) {
+                       err = -ENOMEM;
+                       hash_del(depmod->modules_by_name, mod->modname);
+                       goto fail;
+               }
                mod->uncrelpath[uncrelpathlen] = '\0';
                err = hash_add_unique(depmod->modules_by_uncrelpath, mod->uncrelpath, mod);
                if (err < 0) {