From: Richard Yao Date: Wed, 23 Apr 2014 03:35:38 +0000 (-0400) Subject: Fix memory leak in zpool_clear_label() X-Git-Tag: zfs-0.6.3~15 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4def05f;p=zfs Fix memory leak in zpool_clear_label() Clang's static analyzer reported a memory leak in zpool_clear_label(). Upon review, it turns out to be right. This should be a very short lived leak because no daemons use this functionality, but that does not preclude the possibility of third party daemons that do use it. Lets fix it to be a good Samaritan. Signed-off-by: Richard Yao Signed-off-by: Ned Bass Signed-off-by: Brian Behlendorf Issue #2330 --- diff --git a/lib/libzfs/libzfs_import.c b/lib/libzfs/libzfs_import.c index b5a079c0e..8afe77af3 100644 --- a/lib/libzfs/libzfs_import.c +++ b/lib/libzfs/libzfs_import.c @@ -922,8 +922,10 @@ zpool_clear_label(int fd) for (l = 0; l < VDEV_LABELS; l++) { if (pwrite64(fd, label, sizeof (vdev_label_t), - label_offset(size, l)) != sizeof (vdev_label_t)) + label_offset(size, l)) != sizeof (vdev_label_t)) { + free(label); return (-1); + } } free(label);