From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:58461) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RKwzn-0002Dl-U9 for qemu-devel@nongnu.org; Mon, 31 Oct 2011 14:54:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RKwzm-0007NG-Ip for qemu-devel@nongnu.org; Mon, 31 Oct 2011 14:54:07 -0400 Received: from mail-bw0-f45.google.com ([209.85.214.45]:64042) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RKwzm-0007KK-CM for qemu-devel@nongnu.org; Mon, 31 Oct 2011 14:54:06 -0400 Received: by mail-bw0-f45.google.com with SMTP id zu5so1138677bkb.4 for ; Mon, 31 Oct 2011 11:54:05 -0700 (PDT) From: Pavel Borzenkov Date: Mon, 31 Oct 2011 22:53:38 +0400 Message-Id: <1320087218-4230-4-git-send-email-pavel.borzenkov@gmail.com> In-Reply-To: <1320087218-4230-1-git-send-email-pavel.borzenkov@gmail.com> References: <1320087218-4230-1-git-send-email-pavel.borzenkov@gmail.com> Subject: [Qemu-devel] [PATCH v2 3/3] cmd: Fix potential memory leak List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: armbru@redhat.com Signed-off-by: Pavel Borzenkov --- cmd.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/cmd.c b/cmd.c index 75415d8..0806e18 100644 --- a/cmd.c +++ b/cmd.c @@ -329,16 +329,21 @@ char **breakline(char *input, int *count) 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