From: Tobias Stoeckmann Date: Wed, 21 Aug 2024 20:42:32 +0000 (+0200) Subject: libkmod: Propagate correct errno values X-Git-Tag: v34~493 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=df8354e97b9bdeb06a9a2dab48391f080cf35ca3;p=thirdparty%2Fkmod.git 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 --- 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; }