From: Tobias Stoeckmann Date: Wed, 4 Sep 2024 16:26:15 +0000 (+0200) Subject: libkmod: check fstatat return value X-Git-Tag: v34~414 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=1290d9c2cec5902d495693d5e6fa1874fdcb5a8b;p=thirdparty%2Fkmod.git libkmod: check fstatat return value If fstatat fails, st is not set, which leads to undefined results of subsequent S_ISDIR call. Signed-off-by: Tobias Stoeckmann Reviewed-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/103 Signed-off-by: Lucas De Marchi --- diff --git a/libkmod/libkmod-config.c b/libkmod/libkmod-config.c index bdbdfa62..6b137a51 100644 --- a/libkmod/libkmod-config.c +++ b/libkmod/libkmod-config.c @@ -929,7 +929,10 @@ static bool conf_files_filter_out(struct kmod_ctx *ctx, DIR *d, if (len < 6 || !streq(&fn[len - 5], ".conf")) return true; - fstatat(dirfd(d), fn, &st, 0); + if (fstatat(dirfd(d), fn, &st, 0) < 0) { + ERR(ctx, "Cannot stat directory entry: %s/%s\n", path, fn); + return true; + } if (S_ISDIR(st.st_mode)) { ERR(ctx, "Directories inside directories are not supported: "