When kmod_module_new_from_lookup() resolves to an alias, `err` will be set to a positive value from the lookup function. Do not return a positive value to follow the behavior when it matches a module name and the documentation. --- libkmod/libkmod-module.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c index 6423339..1b59c3c 100644 --- a/libkmod/libkmod-module.c +++ b/libkmod/libkmod-module.c @@ -589,8 +589,8 @@ KMOD_EXPORT int kmod_module_new_from_lookup(struct kmod_ctx *ctx, finish: - DBG(ctx, "lookup %s=%d, list=%p\n", alias, err, *list); - return err; + DBG(ctx, "lookup %s matches=%d, list=%p\n", alias, err, *list); + return err > 0 ? 0 : err; fail: DBG(ctx, "Failed to lookup %s\n", alias); kmod_module_unref_list(*list); -- 2.35.1