diff options
author | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-08-19 03:33:46 +0200 |
---|---|---|
committer | David Oberhollenzer <david.oberhollenzer@sigma-star.at> | 2019-08-19 03:33:46 +0200 |
commit | 466adf661f1452e8cb8226faf7369e231aee9af3 (patch) | |
tree | 6e71110bc5296ae89a5c986821df6b80042b3c8b /lib | |
parent | 6f4267eb44ddddd928ee34d455a092a4863a1ea9 (diff) |
Fix memory leak in data writer error code paths
Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sqfs/data_writer.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqfs/data_writer.c b/lib/sqfs/data_writer.c index c584f1e..d88c50e 100644 --- a/lib/sqfs/data_writer.c +++ b/lib/sqfs/data_writer.c @@ -307,8 +307,10 @@ int write_data_from_fd(data_writer_t *data, file_info_t *fi, if (!(blk_flags & (BLK_FIRST_BLOCK | BLK_LAST_BLOCK))) { blk_flags |= BLK_LAST_BLOCK; - if (add_sentinel_block(data, fi, blk_flags)) + if (add_sentinel_block(data, fi, blk_flags)) { + free(blk); return -1; + } } if (handle_fragment(data, blk)) @@ -440,8 +442,10 @@ int write_data_from_fd_condensed(data_writer_t *data, file_info_t *fi, if (!(blk_flags & (BLK_FIRST_BLOCK | BLK_LAST_BLOCK))) { blk_flags |= BLK_LAST_BLOCK; - if (add_sentinel_block(data, fi, blk_flags)) + if (add_sentinel_block(data, fi, blk_flags)) { + free(blk); return -1; + } } if (handle_fragment(data, blk)) |