From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vincent Bernat Subject: [PATCH iproute2-next] ipaddress: fix label matching Date: Wed, 11 Jul 2018 13:36:03 +0200 Message-ID: <20180711113603.16589-1-vincent@bernat.im> Cc: Vincent Bernat To: netdev@vger.kernel.org, stephen@networkplumber.org, serhe.popovych@gmail.com Return-path: Received: from bart.luffy.cx ([78.47.78.131]:58874 "EHLO bart.luffy.cx" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726388AbeGKLqC (ORCPT ); Wed, 11 Jul 2018 07:46:02 -0400 Sender: netdev-owner@vger.kernel.org List-ID: Since 9516823051ce, "ip addr show label lo:1" doesn't work anymore (doesn't show any address, despite a matching label). Reverting to return 0 instead of -1 fix the issue. However, the condition says: "if we filter by label [...] and the label does NOT match the interface name". This makes little sense to compare the label with the interface name. There is also a logic around filter family being provided or not. The match against the label is done by ifa_label_match_rta() in print_addrinfo() and ipaddr_filter(). Just removing the condition makes "ip addr show" works as expected with or without specifying a label, both when the label is matching and not matching. It also works if we specify a label and the label is the interface name. The flush operation also works as expected. Fixes: 9516823051ce ("ipaddress: Improve print_linkinfo()") Signed-off-by: Vincent Bernat --- ip/ipaddress.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ip/ipaddress.c b/ip/ipaddress.c index 5009bfe6d2e3..20ef6724944e 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -837,11 +837,6 @@ int print_linkinfo(const struct sockaddr_nl *who, if (!name) return -1; - if (filter.label && - (!filter.family || filter.family == AF_PACKET) && - fnmatch(filter.label, name, 0)) - return -1; - if (tb[IFLA_GROUP]) { int group = rta_getattr_u32(tb[IFLA_GROUP]); -- 2.18.0