From: Emil Velikov Date: Wed, 7 May 2025 13:13:39 +0000 (+0100) Subject: libkmod: return the errno from kmod_builtin_info_init() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e2da6209830a8b252b7f578aafbd2a61db69f42b;p=thirdparty%2Fkmod.git libkmod: return the errno from kmod_builtin_info_init() Change the function signature (bool -> int) and directly return the error code. Thus we no longer need to overwrite errno. v2: - return false -> return -ENAMETOOLONG Reference: https://github.com/kmod-project/kmod/issues/244 Signed-off-by: Emil Velikov Link: https://github.com/kmod-project/kmod/pull/346 Signed-off-by: Lucas De Marchi --- diff --git a/libkmod/libkmod-builtin.c b/libkmod/libkmod-builtin.c index da5abdc0..c08626b2 100644 --- a/libkmod/libkmod-builtin.c +++ b/libkmod/libkmod-builtin.c @@ -33,29 +33,27 @@ struct kmod_builtin_info { char *buf; }; -static bool kmod_builtin_info_init(struct kmod_builtin_info *info, struct kmod_ctx *ctx) +static int kmod_builtin_info_init(struct kmod_builtin_info *info, struct kmod_ctx *ctx) { char path[PATH_MAX]; FILE *fp = NULL; const char *dirname = kmod_get_dirname(ctx); size_t len = strlen(dirname); - if ((len + 1 + strlen(MODULES_BUILTIN_MODINFO) + 1) >= sizeof(path)) { - errno = ENAMETOOLONG; - return false; - } + if ((len + 1 + strlen(MODULES_BUILTIN_MODINFO) + 1) >= sizeof(path)) + return -ENAMETOOLONG; snprintf(path, sizeof(path), "%s/" MODULES_BUILTIN_MODINFO, dirname); fp = fopen(path, "r"); if (fp == NULL) - return false; + return -errno; info->ctx = ctx; info->fp = fp; info->bufsz = 0; info->buf = NULL; - return true; + return 0; } static void kmod_builtin_info_release(struct kmod_builtin_info *info) @@ -171,9 +169,11 @@ ssize_t kmod_builtin_get_modinfo(struct kmod_ctx *ctx, const char *modname, DECLARE_STRBUF(buf); struct kmod_builtin_info info; ssize_t count; + int ret; - if (!kmod_builtin_info_init(&info, ctx)) - return -errno; + ret = kmod_builtin_info_init(&info, ctx); + if (ret < 0) + return ret; count = get_strings(&info, modname, &buf); if (count == 0)