diff options
author | mav <mav@FreeBSD.org> | 2018-03-22 23:51:39 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2018-03-22 23:51:39 +0000 |
commit | 737f35ef88fab0f0cb667308ef908d0a6748fd97 (patch) | |
tree | bbccf0c7ac0517242b1cc09dcc1ce4a08808446d /cddl/contrib | |
parent | 6f91b8295e8342d4a3ace602ef9079f07a05aa9e (diff) | |
download | FreeBSD-src-737f35ef88fab0f0cb667308ef908d0a6748fd97.zip FreeBSD-src-737f35ef88fab0f0cb667308ef908d0a6748fd97.tar.gz |
MFC r329665: MFV r316901:
7730 libzfs`add_config() leaks config nvl when reading spare/l2cache devices
illumos/illumos-gate@105686550ee9cbf5d033166a8a2a5a763667d436
https://github.com/illumos/illumos-gate/commit/105686550ee9cbf5d033166a8a2a5a763667d436
https://www.illumos.org/issues/7730
antares:root:~# mdb /usr/sbin/zpool
> ::sysbp _exit
> ::run import
pool: data
id: 2093977168778024605
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:
data ONLINE
c6t0d0 ONLINE
c6t1d0 ONLINE
cache
c6t2d0
mdb: stop on entry to _exit
mdb: target stopped at:
0xfee556ba: nop
mdb: You've got symbols!
Loading modules: [ ld.so.1 libumem.so.1 libc.so.1 libtopo.so.1 libavl.so.1
libnvpair.so.1 ]
> ::findleaks -d
BYTES LEAKED VMEM_SEG CALLER
4096 10 fda7b000 MMAP
8192 1 fea8d000 MMAP
8192 1 fe76d000 MMAP
8192 1 fe66e000 MMAP
4096 1 fe570000 MMAP
8192 1 fe470000 MMAP
4096 1 fe372000 MMAP
4096 1 fe273000 MMAP
Reviewed by: Matthew Ahrens <mahrens@delphix.com>
Reviewed by: Serapheim Dimitropoulos <serapheim@delphix.com>
Approved by: Robert Mustacchi <rm@joyent.com>
Author: Yuri Pankov <yuri.pankov@nexenta.com>
Diffstat (limited to 'cddl/contrib')
-rw-r--r-- | cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c index a8da5b4..2a7c021 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c @@ -240,9 +240,12 @@ add_config(libzfs_handle_t *hdl, pool_list_t *pl, const char *path, free(ne); return (-1); } + ne->ne_guid = vdev_guid; ne->ne_next = pl->names; pl->names = ne; + + nvlist_free(config); return (0); } |