Author: tsoome Date: Sun Nov 10 15:03:59 2019 New Revision: 354593 URL: https://svnweb.freebsd.org/changeset/base/354593
Log: loader: memory leak in vdev_label_read_config() We need to free the allocated buffer for label. Modified: head/stand/libsa/zfs/zfsimpl.c Modified: head/stand/libsa/zfs/zfsimpl.c ============================================================================== --- head/stand/libsa/zfs/zfsimpl.c Sun Nov 10 10:03:22 2019 (r354592) +++ head/stand/libsa/zfs/zfsimpl.c Sun Nov 10 15:03:59 2019 (r354593) @@ -1622,10 +1622,8 @@ vdev_label_read_config(vdev_t *vd, uint64_t txg) nvl_size = VDEV_PHYS_SIZE - sizeof (zio_eck_t) - 4; nvl = malloc(nvl_size); - if (nvl == NULL) { - free(label); - return (NULL); - } + if (nvl == NULL) + goto done; for (int l = 0; l < VDEV_LABELS; l++) { const unsigned char *nvlist; @@ -1643,7 +1641,7 @@ vdev_label_read_config(vdev_t *vd, uint64_t txg) DATA_TYPE_UINT64, NULL, &label_txg); if (error != 0 || label_txg == 0) { memcpy(nvl, nvlist, nvl_size); - return (nvl); + goto done; } if (label_txg <= txg && label_txg > best_txg) { @@ -1666,6 +1664,8 @@ vdev_label_read_config(vdev_t *vd, uint64_t txg) free(nvl); nvl = NULL; } +done: + free(label); return (nvl); } _______________________________________________ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"