Added precondition assertions to upx_decompress().

This commit is contained in:
Markus F.X.J. Oberhumer 2006-06-23 05:27:42 +02:00
parent cc0df92444
commit 391f5caaa2

View File

@ -149,6 +149,9 @@ int upx_decompress ( const upx_bytep src, upx_uint src_len,
{ {
int r = UPX_E_ERROR; int r = UPX_E_ERROR;
assert(*dst_len > 0);
assert(src_len < *dst_len); // must be compressed
if (result && result->method == 0) if (result && result->method == 0)
result = NULL; result = NULL;
@ -188,6 +191,7 @@ int upx_test_overlap ( const upx_bytep buf, upx_uint src_off,
if (result && result->method == 0) if (result && result->method == 0)
result = NULL; result = NULL;
assert(*dst_len > 0);
assert(src_len < *dst_len); // must be compressed assert(src_len < *dst_len); // must be compressed
unsigned overlap_overhead = src_off + src_len - *dst_len; unsigned overlap_overhead = src_off + src_len - *dst_len;
assert((int)overlap_overhead > 0); assert((int)overlap_overhead > 0);