From 4739966e14ca2df24d4f44fb814b6275b9bf2a3c Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Sun, 24 Feb 2008 16:03:58 +0000 Subject: larger restructure to improve security --- src/engine/e_compression.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/engine/e_compression.c') diff --git a/src/engine/e_compression.c b/src/engine/e_compression.c index fa7d7866..0a16d0b4 100644 --- a/src/engine/e_compression.c +++ b/src/engine/e_compression.c @@ -125,9 +125,8 @@ long zerobit_decompress(const void *src_, int size, void *dst_) unsigned char *src = (unsigned char *)src_; unsigned char *dst = (unsigned char *)dst_; unsigned char *end = src + size; - - while(src != end) + while(src < end) { unsigned char bit = 0x80; unsigned char mask = *src++; @@ -140,6 +139,9 @@ long zerobit_decompress(const void *src_, int size, void *dst_) else *dst++ = 0; } + + if(src > end) + return -1; } return (long)(dst-(unsigned char *)dst_); -- cgit 1.4.1