svn commit: r323995 - head/cddl/usr.sbin/zfsd
Alan Somers
asomers at FreeBSD.org
Mon Sep 25 20:44:42 UTC 2017
Author: asomers
Date: Mon Sep 25 20:44:40 2017
New Revision: 323995
URL: https://svnweb.freebsd.org/changeset/base/323995
Log:
Close a memory leak when using zpool_read_all_labels
MFC after: 3 weeks
X-MFC-With: 322854
Sponsored by: Spectra Logic Corp
Modified:
head/cddl/usr.sbin/zfsd/zfsd_event.cc
Modified: head/cddl/usr.sbin/zfsd/zfsd_event.cc
==============================================================================
--- head/cddl/usr.sbin/zfsd/zfsd_event.cc Mon Sep 25 20:38:55 2017 (r323994)
+++ head/cddl/usr.sbin/zfsd/zfsd_event.cc Mon Sep 25 20:44:40 2017 (r323995)
@@ -101,7 +101,7 @@ DevfsEvent::ReadLabel(int devFd, bool &inUse, bool &de
poolName = NULL;
if (zpool_in_use(g_zfsHandle, devFd, &poolState,
&poolName, &b_inuse) == 0) {
- nvlist_t *devLabel;
+ nvlist_t *devLabel = NULL;
inUse = b_inuse == B_TRUE;
if (poolName != NULL)
@@ -116,8 +116,10 @@ DevfsEvent::ReadLabel(int devFd, bool &inUse, bool &de
* might be damaged. In that case, zfsd should do nothing and
* wait for the sysadmin to decide.
*/
- if (nlabels != VDEV_LABELS || devLabel == NULL)
+ if (nlabels != VDEV_LABELS || devLabel == NULL) {
+ nvlist_free(devLabel);
return (NULL);
+ }
try {
Vdev vdev(devLabel);
@@ -131,6 +133,7 @@ DevfsEvent::ReadLabel(int devFd, bool &inUse, bool &de
exp.GetString().insert(0, context);
exp.Log();
+ nvlist_free(devLabel);
}
}
return (NULL);
More information about the svn-src-all
mailing list