Commit 1518039f authored by Jakub Kicinski's avatar Jakub Kicinski Committed by David S. Miller

net/ipv6: don't return positive numbers when nothing was dumped

in6_dump_addrs() returns a positive 1 if there was nothing to dump.
This return value can not be passed as return from inet6_dump_addr()
as is, because it will confuse rtnetlink, resulting in NLMSG_DONE
never getting set:

$ ip addr list dev lo
EOF on netlink
Dump terminated

v2: flip condition to avoid a new goto (DaveA)

Fixes: 7c1e8a38 ("netlink: fixup regression in RTM_GETADDR")
Reported-by: default avatarBrendan Galloway <brendan.galloway@netronome.com>
Signed-off-by: default avatarJakub Kicinski <jakub.kicinski@netronome.com>
Reviewed-by: default avatarDavid Ahern <dsahern@gmail.com>
Tested-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent cb73ee40
...@@ -5120,6 +5120,8 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb, ...@@ -5120,6 +5120,8 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
if (idev) { if (idev) {
err = in6_dump_addrs(idev, skb, cb, s_ip_idx, err = in6_dump_addrs(idev, skb, cb, s_ip_idx,
&fillargs); &fillargs);
if (err > 0)
err = 0;
} }
goto put_tgt_net; goto put_tgt_net;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment