[coreboot-gerrit] Patch set updated for coreboot: cbfstool/cbfs_image: Check for return value of buffer_create

Furquan Shaikh (furquan@google.com) gerrit at coreboot.org
Fri Aug 5 20:58:14 CEST 2016


Furquan Shaikh (furquan at google.com) just uploaded a new patch set to gerrit, which you can find at https://review.coreboot.org/16073

-gerrit

commit 242373953054d68682e92874866b827ca32fa5a9
Author: Furquan Shaikh <furquan at google.com>
Date:   Fri Aug 5 08:27:18 2016 -0700

    cbfstool/cbfs_image: Check for return value of buffer_create
    
    Free any buffers if required.
    
    Change-Id: Iccd435dba51275d875a5fdb5649cdcd0541fd84c
    Signed-off-by: Furquan Shaikh <furquan at google.com>
    Found-by: Coverity Scan # 1361254
---
 util/cbfstool/cbfs_image.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/util/cbfstool/cbfs_image.c b/util/cbfstool/cbfs_image.c
index 01cf8aa..f7bcc39 100644
--- a/util/cbfstool/cbfs_image.c
+++ b/util/cbfstool/cbfs_image.c
@@ -847,7 +847,8 @@ static int cbfs_payload_decompress(struct cbfs_payload_segment *segments,
 	for (int i = 0; i < num_seg; i++)
 		new_buff_sz += segments[i].mem_len;
 
-	buffer_create(&new_buffer, new_buff_sz, "decompressed_buff");
+	if (buffer_create(&new_buffer, new_buff_sz, "decompressed_buff"))
+		return -1;
 
 	in_ptr = buffer_get(buff) + new_offset;
 	out_ptr = buffer_get(&new_buffer) + new_offset;
@@ -878,7 +879,10 @@ static int cbfs_payload_decompress(struct cbfs_payload_segment *segments,
 			continue;
 		}
 
-		buffer_create(&tbuff, segments[i].mem_len, "segment");
+		if (buffer_create(&tbuff, segments[i].mem_len, "segment")) {
+			buffer_delete(&new_buffer);
+			return -1;
+		}
 
 		if (decompress(in_ptr, segments[i].len, buffer_get(&tbuff),
 					(int) buffer_size(&tbuff),



More information about the coreboot-gerrit mailing list