X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fudev%2Fnet%2Flink-config.c;h=0c563b2db5432ff241eb6bf2203f87094bb1365d;hp=5bb6b02c1bb7b326e823651045cfb08b1aca8f2c;hb=ecb08ec6a5c52f2d940f3b8147e2a480affd46e1;hpb=ee0e4cca5ac37a094dfe1074907dae70c7b7701c diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c index 5bb6b02c1..0c563b2db 100644 --- a/src/udev/net/link-config.c +++ b/src/udev/net/link-config.c @@ -139,7 +139,7 @@ void link_config_ctx_free(link_config_ctx *ctx) { } static int load_link(link_config_ctx *ctx, const char *filename) { - link_config *link; + _cleanup_free_ link_config *link = NULL; _cleanup_fclose_ FILE *file; int r; @@ -151,14 +151,12 @@ static int load_link(link_config_ctx *ctx, const char *filename) { if (errno == ENOENT) return 0; else - return errno; + return -errno; } link = new0(link_config, 1); - if (!link) { - r = log_oom(); - goto failure; - } + if (!link) + return log_oom(); link->mac_policy = _MACPOLICY_INVALID; link->wol = _WOL_INVALID; @@ -168,19 +166,16 @@ static int load_link(link_config_ctx *ctx, const char *filename) { (void*) link_config_gperf_lookup, false, false, link); if (r < 0) { log_warning("Could not parse config file %s: %s", filename, strerror(-r)); - goto failure; + return r; } else log_debug("Parsed configuration file %s", filename); link->filename = strdup(filename); LIST_PREPEND(links, ctx->links, link); + link = NULL; return 0; - -failure: - free(link); - return r; } static bool enable_name_policy(void) {