Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Nov 2017 09:11:49 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r325535 - stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201711080911.vA89Bn1g069727@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Wed Nov  8 09:11:49 2017
New Revision: 325535
URL: https://svnweb.freebsd.org/changeset/base/325535

Log:
  MFC r324168: MFV r323531: 8521 nvlist memory leak in get_clones_stat() and spa_load_best()

Modified:
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c	Wed Nov  8 08:53:44 2017	(r325534)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_dataset.c	Wed Nov  8 09:11:49 2017	(r325535)
@@ -1808,10 +1808,10 @@ get_clones_stat(dsl_dataset_t *ds, nvlist_t *nv)
 		fnvlist_add_nvlist(propval, ZPROP_VALUE, val);
 		fnvlist_add_nvlist(nv, zfs_prop_to_name(ZFS_PROP_CLONES),
 		    propval);
-	} else {
-		nvlist_free(val);
-		nvlist_free(propval);
 	}
+
+	nvlist_free(val);
+	nvlist_free(propval);
 }
 
 /*

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Wed Nov  8 08:53:44 2017	(r325534)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa.c	Wed Nov  8 09:11:49 2017	(r325535)
@@ -3101,6 +3101,8 @@ spa_load_best(spa_t *spa, spa_load_state_t state, int 
 
 	if (config && (rewind_error || state != SPA_LOAD_RECOVER))
 		spa_config_set(spa, config);
+	else
+		nvlist_free(config);
 
 	if (state == SPA_LOAD_RECOVER) {
 		ASSERT3P(loadinfo, ==, NULL);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201711080911.vA89Bn1g069727>