diff options
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | lib/lz4.c | 3 |
2 files changed, 2 insertions, 2 deletions
@@ -1,4 +1,5 @@ v1.8.1 +fix : decompression failed when using a combination of extDict + low memory address (#397), reported and fixed by Julian Scheid (@jscheid) install: fix : correct man page directory (#387), reported by Stuart Cardall (@itoffshore) build : `make` and `make test` compatible with `-jX`, reported by @mwgamera @@ -1127,7 +1127,6 @@ LZ4_FORCE_INLINE int LZ4_decompress_generic( BYTE* const oend = op + outputSize; BYTE* cpy; BYTE* oexit = op + targetOutputSize; - const BYTE* const lowLimit = lowPrefix - dictSize; const BYTE* const dictEnd = (const BYTE*)dictStart + dictSize; const unsigned dec32table[] = {0, 1, 2, 1, 4, 4, 4, 4}; @@ -1183,7 +1182,7 @@ LZ4_FORCE_INLINE int LZ4_decompress_generic( /* get offset */ offset = LZ4_readLE16(ip); ip+=2; match = op - offset; - if ((checkOffset) && (unlikely(match < lowLimit))) goto _output_error; /* Error : offset outside buffers */ + if ((checkOffset) && (unlikely(match + dictSize < lowPrefix))) goto _output_error; /* Error : offset outside buffers */ LZ4_write32(op, (U32)offset); /* costs ~1%; silence an msan warning when offset==0 */ /* get matchlength */ |