• Liping Zhang's avatar
    netfilter: nft_set_bitmap: free dummy elements when destroy the set · 54a5f9d9
    Liping Zhang authored
    We forget to free dummy elements when deleting the set. So when I was
    running nft-test.py, I saw many kmemleak warnings:
      kmemleak: 1344 new suspected memory leaks ...
      # cat /sys/kernel/debug/kmemleak
      unreferenced object 0xffff8800631345c8 (size 32):
      comm "nft", pid 9075, jiffies 4295743309 (age 1354.815s)
      hex dump (first 32 bytes):
        f8 63 13 63 00 88 ff ff 88 79 13 63 00 88 ff ff  .c.c.....y.c....
        04 0c 00 00 00 00 00 00 00 00 00 00 08 03 00 00  ................
      backtrace:
        [<ffffffff819059da>] kmemleak_alloc+0x4a/0xa0
        [<ffffffff81288174>] __kmalloc+0x164/0x310
        [<ffffffffa061269d>] nft_set_elem_init+0x3d/0x1b0 [nf_tables]
        [<ffffffffa06130da>] nft_add_set_elem+0x45a/0x8c0 [nf_tables]
        [<ffffffffa0613645>] nf_tables_newsetelem+0x105/0x1d0 [nf_tables]
        [<ffffffffa05fe6d4>] nfnetlink_rcv+0x414/0x770 [nfnetlink]
        [<ffffffff817f0ca6>] netlink_unicast+0x1f6/0x310
        [<ffffffff817f10c6>] netlink_sendmsg+0x306/0x3b0
      ...
    
    Fixes: e920dde5 ("netfilter: nft_set_bitmap: keep a list of dummy elements")
    Signed-off-by: default avatarLiping Zhang <zlpnobody@gmail.com>
    Signed-off-by: default avatarPablo Neira Ayuso <pablo@netfilter.org>
    54a5f9d9
nft_set_bitmap.c 8.49 KB