From 71523935036cbc9e82feda750b9025fcd03a7393 Mon Sep 17 00:00:00 2001 From: Vladimir 'phcoder' Serbinenko Date: Sun, 20 Oct 2013 17:57:28 +0200 Subject: [PATCH] * grub-core/fs/zfs/zfs.c (check_pool_label): Fix memory leak. --- ChangeLog | 4 ++++ grub-core/fs/zfs/zfs.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index e7d4ce4cb..f1e3ab9a7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-10-20 Vladimir Serbinenko + + * grub-core/fs/zfs/zfs.c (check_pool_label): Fix memory leak. + 2013-10-20 Vladimir Serbinenko * grub-core/net/arp.c: Remove variable length arrays. diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c index dea231fbd..23603affe 100644 --- a/grub-core/fs/zfs/zfs.c +++ b/grub-core/fs/zfs/zfs.c @@ -989,8 +989,11 @@ check_pool_label (struct grub_zfs_data *data, == ZEC_MAGIC) endian = GRUB_ZFS_BIG_ENDIAN; else - return grub_error (GRUB_ERR_BAD_FS, - "bad vdev_phys_t.vp_zbt.zec_magic number"); + { + grub_free (nvlist); + return grub_error (GRUB_ERR_BAD_FS, + "bad vdev_phys_t.vp_zbt.zec_magic number"); + } /* Now check the integrity of the vdev_phys_t structure though checksum. */ ZIO_SET_CHECKSUM(&emptycksum, diskdesc->vdev_phys_sector << 9, 0, 0, 0); err = zio_checksum_verify (emptycksum, ZIO_CHECKSUM_LABEL, endian,