From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:47273) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RJuJz-0006UT-6t for qemu-devel@nongnu.org; Fri, 28 Oct 2011 17:50:40 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RJuJy-0000yh-7y for qemu-devel@nongnu.org; Fri, 28 Oct 2011 17:50:39 -0400 From: Pavel Borzenkov Date: Sat, 29 Oct 2011 01:50:33 +0400 Message-Id: <1319838633-25493-1-git-send-email-pavel.borzenkov@gmail.com> Subject: [Qemu-devel] [PATCH] cmd: Fix potential memory leak List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: qemu-trivial@nongnu.org Signed-off-by: Pavel Borzenkov --- Note, that almost all code in the file violates CODING STYLE. The changed lines are written wrt CODING STYLE (like commits 7d7d975c and c32d766a). --- cmd.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmd.c b/cmd.c index abcf206..e1ae5a0 100644 --- a/cmd.c +++ b/cmd.c @@ -334,16 +334,21 @@ breakline( int c = 0; char *p; char **rval = calloc(sizeof(char *), 1); + char **tmp; while (rval && (p = qemu_strsep(&input, " ")) != NULL) { if (!*p) continue; c++; - rval = realloc(rval, sizeof(*rval) * (c + 1)); - if (!rval) { + tmp = realloc(rval, sizeof(*rval) * (c + 1)); + if (!tmp) { + free(rval); + rval = NULL; c = 0; break; - } + } else { + rval = tmp; + } rval[c - 1] = p; rval[c] = NULL; } -- 1.7.0.4