From: Tobias Stoeckmann Date: Fri, 16 Aug 2024 21:49:18 +0000 (+0200) Subject: Verify absolute path creation X-Git-Tag: v34~498 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a5031e2811baf2b277ac718c90e3031aea4ec079;p=thirdparty%2Fkmod.git Verify absolute path creation If a relative path is supplied, the conversion to an absolute path can fail, e.g. if current working directory does not exist anymore. Signed-off-by: Tobias Stoeckmann Reviewed-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/79 Signed-off-by: Lucas De Marchi --- diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c index 0478093f..61efe2d6 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -288,6 +288,10 @@ KMOD_EXPORT struct kmod_ctx *kmod_new(const char *dirname, ctx->log_priority = LOG_ERR; ctx->dirname = get_kernel_release(dirname); + if (ctx->dirname == NULL) { + ERR(ctx, "could not retrieve directory\n"); + goto fail; + } /* environment overwrites config */ env = secure_getenv("KMOD_LOG"); diff --git a/tools/depmod.c b/tools/depmod.c index f2f3c7c1..8ba8ee40 100644 --- a/tools/depmod.c +++ b/tools/depmod.c @@ -2937,11 +2937,19 @@ static int do_depmod(int argc, char *argv[]) if (root) free(root); root = path_make_absolute_cwd(optarg); + if (root == NULL) { + ERR("invalid image path %s\n", optarg); + goto cmdline_failed; + } break; case 'o': if (out_root) free(out_root); out_root = path_make_absolute_cwd(optarg); + if (out_root == NULL) { + ERR("invalid output directory %s\n", optarg); + goto cmdline_failed; + } break; case 'C': { size_t bytes = sizeof(char *) * (n_config_paths + 2);