summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-12-30 03:43:35 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2010-12-30 03:43:35 (GMT)
commited9b08d1c1bbccd1bcb2c3e06b0095b6b99dc96c (patch)
treebd9a9b9f6b4ced902e90ec7024ca4c6b4dcd1ec7
parent2753aae0e8728f527bedf103b1207857b7c3e151 (diff)
downloadbusybox-ed9b08d1c1bbccd1bcb2c3e06b0095b6b99dc96c.tar.gz
busybox-ed9b08d1c1bbccd1bcb2c3e06b0095b6b99dc96c.tar.bz2
bzip2: plug memory leak on every processed file
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--archival/bzip2.c6
-rw-r--r--archival/libarchive/bz/bzlib.c4
2 files changed, 5 insertions, 5 deletions
diff --git a/archival/bzip2.c b/archival/bzip2.c
index a6abc93..ab08ffc 100644
--- a/archival/bzip2.c
+++ b/archival/bzip2.c
@@ -128,10 +128,12 @@ IF_DESKTOP(long long) int FAST_FUNC compressStream(unpack_info_t *info UNUSED_PA
break;
}
-#if ENABLE_FEATURE_CLEAN_UP
+ /* Can't be conditional on ENABLE_FEATURE_CLEAN_UP -
+ * we are called repeatedly
+ */
BZ2_bzCompressEnd(strm);
free(iobuf);
-#endif
+
return total;
}
diff --git a/archival/libarchive/bz/bzlib.c b/archival/libarchive/bz/bzlib.c
index b3beeab..5f7db74 100644
--- a/archival/libarchive/bz/bzlib.c
+++ b/archival/libarchive/bz/bzlib.c
@@ -361,7 +361,6 @@ int BZ2_bzCompress(bz_stream *strm, int action)
/*---------------------------------------------------*/
-#if ENABLE_FEATURE_CLEAN_UP
static
void BZ2_bzCompressEnd(bz_stream *strm)
{
@@ -372,9 +371,8 @@ void BZ2_bzCompressEnd(bz_stream *strm)
free(s->arr2);
free(s->ftab);
free(s->crc32table);
- free(strm->state);
+ free(s);
}
-#endif
/*---------------------------------------------------*/