diff mbox

[3/5] data_layout: improve memory handling

Message ID 1412237788-20611-3-git-send-email-patrick@georgi-clan.de
State Accepted, archived
Headers show

Commit Message

Patrick Georgi Oct. 2, 2014, 8:16 a.m. UTC
- free empty_blk if it's allocated and there's an error
- only free empty_blk if it's non-NULL. While POSIX
  requests such free()s to be safe, some implementations
  (eg Solaris) aren't compliant.

Found-by: Coverity Scan
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
---
 src/data_layout.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
diff mbox

Patch

diff --git a/src/data_layout.c b/src/data_layout.c
index 01f00ab..db0a0f0 100644
--- a/src/data_layout.c
+++ b/src/data_layout.c
@@ -1004,12 +1004,14 @@  write_block_raw(build_image_context *context)
 		{
 			size_t bytes = pages_to_write * context->page_size;
 
-			if (fwrite(data, 1, bytes, context->raw_file) != bytes)
+			if (fwrite(data, 1, bytes, context->raw_file) != bytes) {
+				if (empty_blk) free(empty_blk);
 				return -1;
+			}
 		}
 	}
 
-	free(empty_blk);
+	if (empty_blk) free(empty_blk);
 	return 0;
 }