summaryrefslogtreecommitdiffstats
path: root/libsparse
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2013-10-29 14:12:46 -0700
committerElliott Hughes <enh@google.com>2013-10-29 14:12:46 -0700
commit14e28d39f7f094225c1ddae8fa43bd792c621a8f (patch)
treef4d986698864a59ea87af253247753768916be37 /libsparse
parent98f87d92d89079f274374409efcf57ca52b13c1f (diff)
downloadsystem_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.c2
-rw-r--r--libsparse/output_file.c2
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;