From 4aceda0497a44706a1361cd2db34266e38a48e8b Mon Sep 17 00:00:00 2001 From: Ryan Moeller Date: Tue, 27 Jul 2021 13:48:42 +0000 Subject: [PATCH] libzfs_sendrecv: Fix leaked holds nvlist There is no need to allocate a holds nvlist. lzc_get_holds does that for us. Reviewed-by: Brian Behlendorf Signed-off-by: Ryan Moeller Closes #12967 --- lib/libzfs/libzfs_sendrecv.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/libzfs/libzfs_sendrecv.c b/lib/libzfs/libzfs_sendrecv.c index 13ac21df93..b67c9b30c8 100644 --- a/lib/libzfs/libzfs_sendrecv.c +++ b/lib/libzfs/libzfs_sendrecv.c @@ -351,12 +351,11 @@ send_iterate_snap(zfs_handle_t *zhp, void *arg) fnvlist_add_nvlist(sd->snapprops, snapname, nv); fnvlist_free(nv); if (sd->holds) { - nvlist_t *holds = fnvlist_alloc(); - int err = lzc_get_holds(zhp->zfs_name, &holds); - if (err == 0) { + nvlist_t *holds; + if (lzc_get_holds(zhp->zfs_name, &holds) == 0) { fnvlist_add_nvlist(sd->snapholds, snapname, holds); + fnvlist_free(holds); } - fnvlist_free(holds); } zfs_close(zhp);