From: Lucas De Marchi Date: Tue, 13 Dec 2011 12:48:49 +0000 (-0200) Subject: Return early on lookup error X-Git-Tag: v1~29 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ecd6bcd2045949b89ea238fe28750931657c561e;p=thirdparty%2Fkmod.git Return early on lookup error There's no reason to keep looking for options if alias didn't match. --- diff --git a/libkmod/libkmod.c b/libkmod/libkmod.c index 2b63215d..74975fd4 100644 --- a/libkmod/libkmod.c +++ b/libkmod/libkmod.c @@ -660,30 +660,30 @@ KMOD_EXPORT int kmod_resolve_alias_options(struct kmod_ctx *ctx, if (alias_normalize(given_alias, alias, NULL) < 0) return -EINVAL; - err = kmod_module_new_from_lookup(ctx, alias, &modules); - if (err >= 0) { - kmod_list_foreach(l, modules) { - const char *str = kmod_module_get_options(l->data); - size_t len; - void *tmp; - - if (str == NULL) - continue; - len = strlen(str); - - tmp = realloc(opts, optslen + len + 2); - if (tmp == NULL) - goto failed; - opts = tmp; - if (optslen > 0) { - opts[optslen] = ' '; - optslen++; - } - memcpy(opts + optslen, str, len); - optslen += len; - opts[optslen] = '\0'; + if (err < 0) + return err; + + kmod_list_foreach(l, modules) { + const char *str = kmod_module_get_options(l->data); + size_t len; + void *tmp; + + if (str == NULL) + continue; + len = strlen(str); + + tmp = realloc(opts, optslen + len + 2); + if (tmp == NULL) + goto failed; + opts = tmp; + if (optslen > 0) { + opts[optslen] = ' '; + optslen++; } + memcpy(opts + optslen, str, len); + optslen += len; + opts[optslen] = '\0'; } kmod_list_foreach(l, ctx->config->options) {