From e8c9b5b06f762254d17e41663760708cba8ede79 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 26 Feb 2019 14:34:25 +0900 Subject: [PATCH 1/3] network: make ndisc_router_process_options() propagate error And its caller ignore the error. --- src/network/networkd-ndisc.c | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index c3053c007b..d99c0670e8 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -493,7 +493,7 @@ static void ndisc_router_process_dnssl(Link *link, sd_ndisc_router *rt) { } } -static void ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { +static int ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { int r; assert(link); @@ -503,18 +503,14 @@ static void ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { for (;;) { uint8_t type; - if (r < 0) { - log_link_warning_errno(link, r, "Failed to iterate through options: %m"); - return; - } + if (r < 0) + return log_link_warning_errno(link, r, "Failed to iterate through options: %m"); if (r == 0) /* EOF */ break; r = sd_ndisc_router_option_get_type(rt, &type); - if (r < 0) { - log_link_warning_errno(link, r, "Failed to get RA option type: %m"); - return; - } + if (r < 0) + return log_link_warning_errno(link, r, "Failed to get RA option type: %m"); switch (type) { @@ -522,10 +518,8 @@ static void ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { uint8_t flags; r = sd_ndisc_router_prefix_get_flags(rt, &flags); - if (r < 0) { - log_link_warning_errno(link, r, "Failed to get RA prefix flags: %m"); - return; - } + if (r < 0) + return log_link_warning_errno(link, r, "Failed to get RA prefix flags: %m"); if (link->network->ipv6_accept_ra_use_onlink_prefix) if (flags & ND_OPT_PI_FLAG_ONLINK) @@ -555,6 +549,8 @@ static void ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { r = sd_ndisc_router_option_next(rt); } + + return 0; } static int ndisc_router_handler(Link *link, sd_ndisc_router *rt) { @@ -581,8 +577,8 @@ static int ndisc_router_handler(Link *link, sd_ndisc_router *rt) { } } - ndisc_router_process_default(link, rt); - ndisc_router_process_options(link, rt); + (void) ndisc_router_process_default(link, rt); + (void) ndisc_router_process_options(link, rt); return r; } From 87d8a4dee8a5fccb046d315341cd89d09bc1075e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 26 Feb 2019 14:36:07 +0900 Subject: [PATCH 2/3] network: merge conditions and use FLAGS_SET() macro --- src/network/networkd-ndisc.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c index d99c0670e8..eb470a4d48 100644 --- a/src/network/networkd-ndisc.c +++ b/src/network/networkd-ndisc.c @@ -521,13 +521,13 @@ static int ndisc_router_process_options(Link *link, sd_ndisc_router *rt) { if (r < 0) return log_link_warning_errno(link, r, "Failed to get RA prefix flags: %m"); - if (link->network->ipv6_accept_ra_use_onlink_prefix) - if (flags & ND_OPT_PI_FLAG_ONLINK) - (void) ndisc_router_process_onlink_prefix(link, rt); + if (link->network->ipv6_accept_ra_use_onlink_prefix && + FLAGS_SET(flags, ND_OPT_PI_FLAG_ONLINK)) + (void) ndisc_router_process_onlink_prefix(link, rt); - if (link->network->ipv6_accept_ra_use_autonomous_prefix) - if (flags & ND_OPT_PI_FLAG_AUTO) - (void) ndisc_router_process_autonomous_prefix(link, rt); + if (link->network->ipv6_accept_ra_use_autonomous_prefix && + FLAGS_SET(flags, ND_OPT_PI_FLAG_AUTO)) + (void) ndisc_router_process_autonomous_prefix(link, rt); break; } From 80be3de31f55bbd4da2b81654e769e199b08fa4d Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Wed, 27 Feb 2019 13:54:13 +0900 Subject: [PATCH 3/3] network: fix error code in log --- src/network/networkd-network.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c index 7826ba2140..75dd8b9e4e 100644 --- a/src/network/networkd-network.c +++ b/src/network/networkd-network.c @@ -1507,7 +1507,7 @@ int config_parse_dhcp_user_class( break; if (strlen(w) > 255) { - log_syntax(unit, LOG_ERR, filename, line, r, + log_syntax(unit, LOG_ERR, filename, line, 0, "%s length is not in the range 1-255, ignoring.", w); continue; }