about summary refs log tree commit diff
path: root/src/engine/e_compression.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/e_compression.c')
-rw-r--r--src/engine/e_compression.c6
1 files changed, 4 insertions, 2 deletions
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_);