Thread (2 messages) flat view 2 messages, 2 authors, 2012-08-13

Re: iproute2-3.5.0: `ip a s` no longer shows addresses

From: Stephen Hemminger <hidden>
Date: 2012-08-13 15:11:35

On Tue, 7 Aug 2012 15:03:00 -0400
Mike Frysinger [off-list ref] wrote:
quoted hunk ↗ jump to hunk
since 3.4.0 works, but 3.5.0, a quick bisect shows the bad commit:
http://git.kernel.org/?p=linux/kernel/git/shemminger/iproute2.git;a=commit;h=8d07e5f7d995171ee8834eae268e300560de5d4f

the simple test case:
make clean && make -j -s && ./ip/ip a s lo

before that change, i would get:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

but after, i now get:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

seems like the bug was introduced in the middle of that patch:
 
-	if (filter.family != AF_PACKET) {
+	if (filter.family && filter.family != AF_PACKET) {
+		if (filter.oneline)
+			no_link = 1;
+
 		if (rtnl_wilddump_request(&rth, filter.family, RTM_GETADDR) < 0) {
 			perror("Cannot send dump request");
 			exit(1);

if i revert the change to the if statement there, `ip a s` works for me again.
(see below)
-mike
diff --git a/ip/ipaddress.c b/ip/ipaddress.c
index 37deda5..69a63b3 100644
--- a/ip/ipaddress.c
+++ b/ip/ipaddress.c
@@ -1018,7 +1018,7 @@ static int ipaddr_list_or_flush(int argc, char **argv, int flush)
 		exit(1);
 	}
 
-	if (filter.family && filter.family != AF_PACKET) {
+	if (filter.family != AF_PACKET) {
 		if (filter.oneline)
 			no_link = 1;
 
Ok. Applied

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help