From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43977) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Urlpe-00073t-3t for qemu-devel@nongnu.org; Wed, 26 Jun 2013 05:16:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Urlpa-0003RF-Uk for qemu-devel@nongnu.org; Wed, 26 Jun 2013 05:16:06 -0400 Received: from [222.73.24.84] (port=26102 helo=song.cn.fujitsu.com) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Urlpa-0003Pj-L8 for qemu-devel@nongnu.org; Wed, 26 Jun 2013 05:16:02 -0400 From: Hu Tao Date: Wed, 26 Jun 2013 17:15:02 +0800 Message-Id: In-Reply-To: References: Subject: [Qemu-devel] [PATCH v5 4/7] set psize to 0 when romfile_loadfile failed List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, seabios@seabios.org Cc: Vasilis Liaskovitis Signed-off-by: Hu Tao --- src/romfile.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/romfile.c b/src/romfile.c index ea71d1f..b1b89bb 100644 --- a/src/romfile.c +++ b/src/romfile.c @@ -51,28 +51,33 @@ romfile_loadfile(const char *name, int *psize) { struct romfile_s *file = romfile_find(name); if (!file) - return NULL; + goto failed; int filesize = file->size; if (!filesize) - return NULL; + goto failed; char *data = malloc_tmphigh(filesize+1); if (!data) { warn_noalloc(); - return NULL; + goto failed; } dprintf(5, "Copying romfile '%s' (len %d)\n", name, filesize); int ret = file->copy(file, data, filesize); if (ret < 0) { free(data); - return NULL; + goto failed; } if (psize) *psize = filesize; data[filesize] = '\0'; return data; + +failed: + if (psize) + *psize = 0; + return NULL; } // Attempt to load an integer from the given file - return 'defval' -- 1.8.3.1