diff options
author | delphij <delphij@FreeBSD.org> | 2014-03-14 01:09:42 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2014-03-14 01:09:42 +0000 |
commit | dda91b34acd14b00ab7129430b824d1d7f57f5cd (patch) | |
tree | 66177c1c8961c905cff2825d8a5a6247d2299373 /cddl | |
parent | 90e0538945e59e93c231f30d1e2390ebc2f47bc5 (diff) | |
download | FreeBSD-src-dda91b34acd14b00ab7129430b824d1d7f57f5cd.zip FreeBSD-src-dda91b34acd14b00ab7129430b824d1d7f57f5cd.tar.gz |
MFC r262577: MFV r262570:
4626 libzfs memleak in zpool_in_use()
Diffstat (limited to 'cddl')
-rw-r--r-- | cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c index f683adb..e53a8cd 100644 --- a/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c +++ b/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_import.c @@ -20,8 +20,8 @@ */ /* * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. - * Copyright 2011 Nexenta Systems, Inc. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved. + * Copyright 2014 Nexenta Systems, Inc. All rights reserved. */ /* @@ -1613,9 +1613,16 @@ zpool_in_use(libzfs_handle_t *hdl, int fd, pool_state_t *state, char **namestr, * its state to active. */ if (pool_active(hdl, name, guid, &isactive) == 0 && isactive && - (zhp = zpool_open_canfail(hdl, name)) != NULL && - zpool_get_prop_int(zhp, ZPOOL_PROP_READONLY, NULL)) - stateval = POOL_STATE_ACTIVE; + (zhp = zpool_open_canfail(hdl, name)) != NULL) { + if (zpool_get_prop_int(zhp, ZPOOL_PROP_READONLY, NULL)) + stateval = POOL_STATE_ACTIVE; + + /* + * All we needed the zpool handle for is the + * readonly prop check. + */ + zpool_close(zhp); + } ret = B_TRUE; break; |