From df8354e97b9bdeb06a9a2dab48391f080cf35ca3 Mon Sep 17 00:00:00 2001 From: Tobias Stoeckmann Date: Wed, 21 Aug 2024 22:42:32 +0200 Subject: [PATCH] libkmod: Propagate correct errno values Make sure that errors never end up with errno being 0. These code paths negate the errno value to get a negative value to propagate the fact that an error occurred. -0 would be 0 again so errors are not detected. Signed-off-by: Tobias Stoeckmann Reviewed-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/83 Signed-off-by: Lucas De Marchi --- libkmod/libkmod-builtin.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libkmod/libkmod-builtin.c b/libkmod/libkmod-builtin.c index 825e3a72..48e2f752 100644 --- a/libkmod/libkmod-builtin.c +++ b/libkmod/libkmod-builtin.c @@ -215,8 +215,10 @@ static bool kmod_builtin_iter_get_modname(struct kmod_builtin_iter *iter, size_t linesz, len; off_t offset; - if (iter->pos == iter->size) - return false; + if (iter->pos == iter->size) { + sv_errno = EINVAL; + goto fail; + } line = NULL; @@ -230,7 +232,7 @@ static bool kmod_builtin_iter_get_modname(struct kmod_builtin_iter *iter, dot = strchr(line, '.'); if (!dot) { - sv_errno = errno; + sv_errno = EINVAL; ERR(iter->ctx, "kmod_builtin_iter_get_modname: unexpected string without modname prefix\n"); goto fail; } -- 2.47.3