libsparse: fix memory leak in output_file_close()
Fix memory leak in output_file_close(): Arguable whose resposibility to free structs allocated inside a file struct (the caller or the library function), but the following protocol (i.e. this fix) would better prevent memory leaks: 1) output_file_close() function will free those structs inside a file struct, right before closing the file. * Note: those structs are originally allocated by other libsparse function. 2) If the caller wants to clean up those struct inside a file struct, it may. Just free those structs, and set the pointer to NULL. Afterward, when file_close()'s are called, they won't be free'ed twice. Bug: 142483439 Test: verified by script MemLeak_LastCmd.sh (attached in Bugnizer) Change-Id: I8bb9f7c9f7d19268663e2830d1a90d27bd5f99bd Signed-off-by: Robin Hsu <robinhsu@google.com>
This commit is contained in:
parent
d9381651ee
commit
48c9f6196f
1 changed files with 4 additions and 0 deletions
|
|
@ -493,6 +493,10 @@ static struct sparse_file_ops normal_file_ops = {
|
|||
|
||||
void output_file_close(struct output_file* out) {
|
||||
out->sparse_ops->write_end_chunk(out);
|
||||
free(out->zero_buf);
|
||||
free(out->fill_buf);
|
||||
out->zero_buf = nullptr;
|
||||
out->fill_buf = nullptr;
|
||||
out->ops->close(out);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue