changeset 57:034de958ee65

Fix off by one error in a test.
author Rob Landley <rob@landley.net>
date Wed, 17 Jan 2007 16:31:23 -0500
parents 7794562e2e64
children b060142aee01
files lib/bunzip.c
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/lib/bunzip.c	Wed Jan 17 13:58:08 2007 -0500
+++ b/lib/bunzip.c	Wed Jan 17 16:31:23 2007 -0500
@@ -197,7 +197,9 @@
 		t = get_bits(bd, 5);
 		for (i = 0; i < symCount; i++) {
 			for(;;) {
-				if (MAX_HUFCODE_BITS < (unsigned)t-1) return RETVAL_DATA_ERROR;
+				// !t || t > MAX_HUFCODE_BITS in one test.
+				if (MAX_HUFCODE_BITS-1 < (unsigned)t-1)
+					return RETVAL_DATA_ERROR;
 				if(!get_bits(bd, 1)) break;    // Stop yet?
 				t += (1 - 2*get_bits(bd, 1));  // bit ? t-- : t++
 			}