diff options
author | Tao Bao <tbao@google.com> | 2016-12-01 18:03:12 +0100 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2016-12-01 18:03:13 +0100 |
commit | ef3bea15b8cb666387df0edc7dfa016b20bb3f87 (patch) | |
tree | 5cdf0d8f55334c3a0a2fcc6ae7092986ed699dbb | |
parent | Merge "bootable/recovery: cleanup compiler warnings (potential leak of memory)" (diff) | |
parent | bootable/recovery: cleanup compiler warnings (unused value) (diff) | |
download | android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.tar android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.tar.gz android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.tar.bz2 android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.tar.lz android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.tar.xz android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.tar.zst android_bootable_recovery-ef3bea15b8cb666387df0edc7dfa016b20bb3f87.zip |
-rw-r--r-- | applypatch/imgdiff.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/applypatch/imgdiff.cpp b/applypatch/imgdiff.cpp index 4dc481093..528daf113 100644 --- a/applypatch/imgdiff.cpp +++ b/applypatch/imgdiff.cpp @@ -321,6 +321,10 @@ unsigned char* ReadZip(const char* filename, // -15 means we are decoding a 'raw' deflate stream; zlib will // not expect zlib headers. int ret = inflateInit2(&strm, -15); + if (ret < 0) { + printf("failed to initialize inflate: %d\n", ret); + return NULL; + } strm.avail_out = curr->len; strm.next_out = curr->data; @@ -446,6 +450,10 @@ unsigned char* ReadImage(const char* filename, // -15 means we are decoding a 'raw' deflate stream; zlib will // not expect zlib headers. int ret = inflateInit2(&strm, -15); + if (ret < 0) { + printf("failed to initialize inflate: %d\n", ret); + return NULL; + } do { strm.avail_out = allocated - curr->len; @@ -553,10 +561,18 @@ int TryReconstruction(ImageChunk* chunk, unsigned char* out) { int ret; ret = deflateInit2(&strm, chunk->level, chunk->method, chunk->windowBits, chunk->memLevel, chunk->strategy); + if (ret < 0) { + printf("failed to initialize deflate: %d\n", ret); + return -1; + } do { strm.avail_out = BUFFER_SIZE; strm.next_out = out; ret = deflate(&strm, Z_FINISH); + if (ret < 0) { + printf("failed to deflate: %d\n", ret); + return -1; + } size_t have = BUFFER_SIZE - strm.avail_out; if (memcmp(out, chunk->deflate_data+p, have) != 0) { |