HomeFreeBSD

Fix memleak in vdev_config_generate_stats

Description

Fix memleak in vdev_config_generate_stats

fnvlist_add_nvlist will copy the contents of nvx, so we need to
free it here.

unreferenced object 0xffff8800a6934e80 (size 64):

comm "zpool", pid 3398, jiffies 4295007406 (age 214.180s)
hex dump (first 32 bytes):
  60 06 c2 73 00 88 ff ff 00 7c 8c 73 00 88 ff ff  `..s.....|.s....
  00 00 00 00 00 00 00 00 40 b0 70 c0 ff ff ff ff  ........@.p.....
backtrace:
  [<ffffffff81810c4e>] kmemleak_alloc+0x4e/0xb0
  [<ffffffff811fac7d>] __kmalloc_node+0x17d/0x310
  [<ffffffffc065528c>] spl_kmem_alloc_impl+0xac/0x180 [spl]
  [<ffffffffc0657379>] spl_vmem_alloc+0x19/0x20 [spl]
  [<ffffffffc07056cf>] nv_alloc_sleep_spl+0x1f/0x30 [znvpair]
  [<ffffffffc07006b7>] nvlist_xalloc.part.13+0x27/0xc0 [znvpair]
  [<ffffffffc07007ad>] nvlist_alloc+0x3d/0x40 [znvpair]
  [<ffffffffc0703abc>] fnvlist_alloc+0x2c/0x80 [znvpair]
  [<ffffffffc07b1783>] vdev_config_generate_stats+0x83/0x370 [zfs]
  [<ffffffffc07b1f53>] vdev_config_generate+0x4e3/0x650 [zfs]
  [<ffffffffc07996db>] spa_config_generate+0x20b/0x4b0 [zfs]
  [<ffffffffc0794f64>] spa_tryimport+0xc4/0x430 [zfs]
  [<ffffffffc07d11d8>] zfs_ioc_pool_tryimport+0x68/0x110 [zfs]
  [<ffffffffc07d4fc6>] zfsdev_ioctl+0x646/0x7a0 [zfs]
  [<ffffffff81232e31>] do_vfs_ioctl+0xa1/0x5b0
  [<ffffffff812333b9>] SyS_ioctl+0x79/0x90

Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Tony Hutter <hutter2@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #4707
Issue #4708

Details

Provenance
Chunwei Chen <david.chen@osnexus.com>Authored on May 27 2016, 10:48 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on May 31 2016, 11:05 PM
Parents
rG06ee0031a6d6: Fix memleak in zpl_parse_options
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rG6a7967253064: Fix memleak in vdev_config_generate_stats (authored by Chunwei Chen <david.chen@osnexus.com>).May 31 2016, 11:05 PM