diff options
author | Elliott Hughes <enh@google.com> | 2013-10-29 14:12:46 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2013-10-29 14:12:46 -0700 |
commit | 14e28d39f7f094225c1ddae8fa43bd792c621a8f (patch) | |
tree | f4d986698864a59ea87af253247753768916be37 /libsparse | |
parent | 98f87d92d89079f274374409efcf57ca52b13c1f (diff) | |
download | system_core-14e28d39f7f094225c1ddae8fa43bd792c621a8f.zip system_core-14e28d39f7f094225c1ddae8fa43bd792c621a8f.tar.gz system_core-14e28d39f7f094225c1ddae8fa43bd792c621a8f.tar.bz2 |
Fix a bunch of small system/core bugs.
Missing frees in:
adb/file_sync_client.c
fastboot/fastboot.c
libsparse/output_file.c
Missing closedirs in:
adb/file_sync_service.c
cpio/mkbootfs.c
libcutils/dir_hash.c
Potential buffer overrun in:
gpttool/gpttool.c
Incorrect NULL check in:
libsparse/backed_block.c
Bug: https://code.google.com/p/android/issues/detail?id=61564
Change-Id: If97838a9e73a77aef7f416c31c237ce1fca4ce21
Diffstat (limited to 'libsparse')
-rw-r--r-- | libsparse/backed_block.c | 2 | ||||
-rw-r--r-- | libsparse/output_file.c | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/libsparse/backed_block.c b/libsparse/backed_block.c index dfb217b..3e72b57 100644 --- a/libsparse/backed_block.c +++ b/libsparse/backed_block.c @@ -370,7 +370,7 @@ int backed_block_split(struct backed_block_list *bbl, struct backed_block *bb, } new_bb = malloc(sizeof(struct backed_block)); - if (bb == NULL) { + if (new_bb == NULL) { return -ENOMEM; } diff --git a/libsparse/output_file.c b/libsparse/output_file.c index 2428022..a28b0a5 100644 --- a/libsparse/output_file.c +++ b/libsparse/output_file.c @@ -722,10 +722,12 @@ int write_fd_chunk(struct output_file *out, unsigned int len, } pos = lseek64(fd, offset, SEEK_SET); if (pos < 0) { + free(data); return -errno; } ret = read_all(fd, data, len); if (ret < 0) { + free(data); return ret; } ptr = data; |