From: Ondrej Zajicek (work) Date: Wed, 29 Mar 2017 13:55:39 +0000 (+0200) Subject: Netlink: Better handling of an error case X-Git-Tag: v2.0.0-pre1~20 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ed6100441ec6e95797d3692925b85c627a4e8df1;p=thirdparty%2Fbird.git Netlink: Better handling of an error case --- diff --git a/sysdep/linux/netlink.c b/sysdep/linux/netlink.c index 897c3c6c8..654dc4d16 100644 --- a/sysdep/linux/netlink.c +++ b/sysdep/linux/netlink.c @@ -1419,13 +1419,13 @@ nl_parse_route(struct nl_parse_state *s, struct nlmsghdr *h) if (!nl_parse_attrs(RTM_RTA(i), rtm_attr_want_mpls, a, sizeof(a))) return; - if (a[RTA_DST]) - if (rta_get_mpls(a[RTA_DST], rta_mpls_stack) == 1) - net_fill_mpls(&dst, rta_mpls_stack[0]); - else - log(L_WARN "KRT: Got multi-label MPLS RTA_DST"); - else - return; /* No support for MPLS routes without RTA_DST */ + if (!a[RTA_DST]) + SKIP("MPLS route without RTA_DST"); + + if (rta_get_mpls(a[RTA_DST], rta_mpls_stack) != 1) + SKIP("MPLS route with multi-label RTA_DST"); + + net_fill_mpls(&dst, rta_mpls_stack[0]); break; default: