netlink: don't forget to release a rhashtable_iter structure
authorAndrey Vagin <avagin@openvz.org>
Wed, 7 Sep 2016 04:31:17 +0000 (21:31 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 Sep 2016 00:29:38 +0000 (17:29 -0700)
This bug was detected by kmemleak:
unreferenced object 0xffff8804269cc3c0 (size 64):
  comm "criu", pid 1042, jiffies 4294907360 (age 13.713s)
  hex dump (first 32 bytes):
    a0 32 cc 2c 04 88 ff ff 00 00 00 00 00 00 00 00  .2.,............
    00 01 00 00 00 00 ad de 00 02 00 00 00 00 ad de  ................
  backtrace:
    [<ffffffff8184dffa>] kmemleak_alloc+0x4a/0xa0
    [<ffffffff8124720f>] kmem_cache_alloc_trace+0x10f/0x280
    [<ffffffffa02864cc>] __netlink_diag_dump+0x26c/0x290 [netlink_diag]

v2: don't remove a reference on a rhashtable_iter structure to
    release it from netlink_diag_dump_done

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Fixes: ad202074320c ("netlink: Use rhashtable walk interface in diag dump")
Signed-off-by: Andrei Vagin <avagin@openvz.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netlink/diag.c

index 3e3e2534478ace7ff041a6f8787fd7fe9c7fddda..b2f0e986a6f49e79d58e9706b7c822a1f11073bb 100644 (file)
@@ -127,7 +127,6 @@ stop:
                goto done;
 
        rhashtable_walk_exit(hti);
-       cb->args[2] = 0;
        num++;
 
 mc_list: