From 1c22c1352a68318712aa7e8d0d688fa1a558af3c Mon Sep 17 00:00:00 2001 From: pjd Date: Mon, 25 Nov 2013 20:45:30 +0000 Subject: Fix double free(). Reported by: Coverity Coverity CID: 1130048 --- lib/libnv/nvpair.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/lib/libnv/nvpair.c b/lib/libnv/nvpair.c index a6a2a00..916444f 100644 --- a/lib/libnv/nvpair.c +++ b/lib/libnv/nvpair.c @@ -683,10 +683,8 @@ nvpair_unpack(int flags, const unsigned char *ptr, size_t *leftp, if (ptr == NULL) goto failed; tmp = realloc(nvp, sizeof(*nvp) + strlen(nvp->nvp_name) + 1); - if (tmp == NULL) { - free(nvp); + if (tmp == NULL) goto failed; - } nvp = tmp; /* Update nvp_name after realloc(). */ nvp->nvp_name = (char *)(nvp + 1); -- cgit v1.1