On 10/24/18 3:36 AM, Li RongQing wrote: > put net when input a invalid ifindex, otherwise it will be leaked > > Fixes: 5fcd266a9f64("net/ipv4: Add support for dumping addresses for a > specific device") > Cc: David Ahern <dsah...@gmail.com> > Signed-off-by: Zhang Yu <zhangy...@baidu.com> > Signed-off-by: Li RongQing <lirongq...@baidu.com> > --- > net/ipv4/devinet.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c > index 63d5b58fbfdb..fd0c5a47e742 100644 > --- a/net/ipv4/devinet.c > +++ b/net/ipv4/devinet.c > @@ -1775,8 +1775,10 @@ static int inet_dump_ifaddr(struct sk_buff *skb, > struct netlink_callback *cb) > > if (fillargs.ifindex) { > dev = __dev_get_by_index(tgt_net, fillargs.ifindex); > - if (!dev) > + if (!dev) { > + put_net(tgt_net); > return -ENODEV; > + } > > in_dev = __in_dev_get_rtnl(dev); > if (in_dev) { >
Good catch. IPv6 has the same problem. Will fix that one. Reviewed-by: David Ahern <dsah...@gmail.com>