From patchwork Sun Jan 16 12:56:25 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Weil X-Patchwork-Id: 79085 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id E038DB6EF2 for ; Sun, 16 Jan 2011 23:57:50 +1100 (EST) Received: from localhost ([127.0.0.1]:40008 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PeSAG-0002gN-Vq for incoming@patchwork.ozlabs.org; Sun, 16 Jan 2011 07:57:01 -0500 Received: from [140.186.70.92] (port=54513 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PeS9p-0002g7-5O for qemu-devel@nongnu.org; Sun, 16 Jan 2011 07:56:34 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PeS9n-0007cC-A4 for qemu-devel@nongnu.org; Sun, 16 Jan 2011 07:56:33 -0500 Received: from moutng.kundenserver.de ([212.227.126.187]:49451) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PeS9m-0007bo-Va for qemu-devel@nongnu.org; Sun, 16 Jan 2011 07:56:31 -0500 Received: from flocke.weilnetz.de (p54ADAA96.dip.t-dialin.net [84.173.170.150]) by mrelayeu.kundenserver.de (node=mrbap0) with ESMTP (Nemesis) id 0MN6y0-1PcGI70igy-006dqt; Sun, 16 Jan 2011 13:56:27 +0100 Received: from stefan by flocke.weilnetz.de with local (Exim 4.72) (envelope-from ) id 1PeS9h-00018G-UX; Sun, 16 Jan 2011 13:56:25 +0100 From: Stefan Weil To: QEMU Developers Date: Sun, 16 Jan 2011 13:56:25 +0100 Message-Id: <1295182585-4323-1-git-send-email-weil@mail.berlios.de> X-Mailer: git-send-email 1.7.2.3 X-Provags-ID: V02:K0:96bmDAFVbEzOTKCPu514gQwqGTNbW+IDrT2CejsRMBW cU+tEhIH683P1OvKLxeXB9Sd65meIM3iHVDMwnsZOPWcm7yicx bXci/Y5Zw3qEf6flf6CqVpjbSoCQBFU8GyHb3TM3CKqjm6vzda apnA6jyeCfQ1swKsVwjppSzGv93yMXVojGS4+3lxjtXVJz5qcS TkvoB8viaTpfJyJTuxMXvRspX6M/0i0onoNmE/KNNHC6U9TPbL jV8cH2vRJBt0F X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. Cc: Blue Swirl Subject: [Qemu-devel] [PATCH] bsd-user: Fix possible memory leaks X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org These errors were reported by cppcheck: bsd-user/elfload.c:1076: error: Memory leak: s bsd-user/elfload.c:1079: error: Memory leak: syms Cc: Blue Swirl Signed-off-by: Stefan Weil --- bsd-user/elfload.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-) diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c index 7374912..313ddc6 100644 --- a/bsd-user/elfload.c +++ b/bsd-user/elfload.c @@ -1072,11 +1072,16 @@ static void load_symbols(struct elfhdr *hdr, int fd) /* Now know where the strtab and symtab are. Snarf them. */ s = malloc(sizeof(*s)); syms = malloc(symtab.sh_size); - if (!syms) + if (!syms) { + free(s); return; + } s->disas_strtab = strings = malloc(strtab.sh_size); - if (!s->disas_strtab) + if (!s->disas_strtab) { + free(s); + free(syms); return; + } lseek(fd, symtab.sh_offset, SEEK_SET); if (read(fd, syms, symtab.sh_size) != symtab.sh_size)