diff mbox

[v5,4/7] set psize to 0 when romfile_loadfile failed

Message ID de0f5a9aa00f61ea61b71d93464b26accf0d7b49.1372237449.git.hutao@cn.fujitsu.com
State New
Headers show

Commit Message

Hu Tao June 26, 2013, 9:15 a.m. UTC
Signed-off-by: Hu Tao <hutao@cn.fujitsu.com>
---
 src/romfile.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)
diff mbox

Patch

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'