diff options
author | Alex Gorrod <alexander.gorrod@mongodb.com> | 2015-05-14 11:51:53 +1000 |
---|---|---|
committer | Alex Gorrod <alexander.gorrod@mongodb.com> | 2015-05-14 11:51:53 +1000 |
commit | 9d2d5cfebc81a82ed5900fb8cd353c810592f28c (patch) | |
tree | 95162675f6137c93a3f990e6d57d8cd57983875a | |
parent | d3a4e1b24f610c37b99a6385e4dd6fefd040ce7c (diff) | |
parent | c6b31832096f932858fe54b5d8b86c3784e156e3 (diff) | |
download | mongo-9d2d5cfebc81a82ed5900fb8cd353c810592f28c.tar.gz |
Merge pull request #1968 from wiredtiger/bzip-error
Handle potential error condition from bzip.
-rw-r--r-- | ext/compressors/bzip2/bzip2_compress.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/ext/compressors/bzip2/bzip2_compress.c b/ext/compressors/bzip2/bzip2_compress.c index 3f2e09de2f6..6cd53aba5d2 100644 --- a/ext/compressors/bzip2/bzip2_compress.c +++ b/ext/compressors/bzip2/bzip2_compress.c @@ -314,8 +314,15 @@ bzip2_decompress(WT_COMPRESSOR *compressor, WT_SESSION *session, if ((ret = BZ2_bzDecompress(&bz)) == BZ_STREAM_END) { *result_lenp = dst_len - bz.avail_out; ret = 0; - } else + } else { + /* + * If BZ2_bzDecompress returns 0, it expects there to be more + * data available. There isn't, so treat this as an error. + */ + if (ret == 0) + ret = BZ_DATA_ERROR; (void)bzip2_error(compressor, session, "BZ2_bzDecompress", ret); + } if ((tret = BZ2_bzDecompressEnd(&bz)) != BZ_OK) return (bzip2_error( |