- 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 <[email protected]>
---
 src/data_layout.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

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;
 }
 
-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-tegra" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to