summaryrefslogtreecommitdiff
path: root/payloads/libpayload/libcbfs/cbfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/libcbfs/cbfs.c')
-rw-r--r--payloads/libpayload/libcbfs/cbfs.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/payloads/libpayload/libcbfs/cbfs.c b/payloads/libpayload/libcbfs/cbfs.c
index 38b1ff8c71..3cce799fe3 100644
--- a/payloads/libpayload/libcbfs/cbfs.c
+++ b/payloads/libpayload/libcbfs/cbfs.c
@@ -116,8 +116,10 @@ void * cbfs_load_stage(struct cbfs_media *media, const char *name)
sizeof(struct cbfs_stage),
(void *) (uintptr_t) stage->load,
stage->len);
- if (!final_size)
- return (void *) -1;
+ if (!final_size) {
+ entry = -1;
+ goto out;
+ }
memset((void *)((uintptr_t)stage->load + final_size), 0,
stage->memlen - final_size);
@@ -127,6 +129,7 @@ void * cbfs_load_stage(struct cbfs_media *media, const char *name)
entry = stage->entry;
// entry = ntohll(stage->entry);
+out:
free(stage);
return (void *) entry;
}