From 1290d9c2cec5902d495693d5e6fa1874fdcb5a8b Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Wed, 4 Sep 2024 18:26:15 +0200 Subject: [PATCH] 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 --- libkmod/libkmod-config.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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: " -- 2.47.2