From cba375916fb18db8b9101aedf4fa079e019311b3 Mon Sep 17 00:00:00 2001 From: Igor Pavlov Date: Sun, 16 Aug 2015 00:00:00 +0000 Subject: 15.06 --- C/LzmaDec.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'C/LzmaDec.c') diff --git a/C/LzmaDec.c b/C/LzmaDec.c index c8326667..27efbaba 100644 --- a/C/LzmaDec.c +++ b/C/LzmaDec.c @@ -1,5 +1,5 @@ /* LzmaDec.c -- LZMA Decoder -2015-05-14 : Igor Pavlov : Public domain */ +2015-06-23 : Igor Pavlov : Public domain */ #include "Precomp.h" @@ -438,10 +438,16 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte if (checkDicSize == 0) { if (distance >= processedPos) + { + p->dicPos = dicPos; return SZ_ERROR_DATA; + } } else if (distance >= checkDicSize) + { + p->dicPos = dicPos; return SZ_ERROR_DATA; + } state = (state < kNumStates + kNumLitStates) ? kNumLitStates : kNumLitStates + 3; } @@ -453,7 +459,10 @@ static int MY_FAST_CALL LzmaDec_DecodeReal(CLzmaDec *p, SizeT limit, const Byte SizeT pos; if ((rem = limit - dicPos) == 0) + { + p->dicPos = dicPos; return SZ_ERROR_DATA; + } curLen = ((rem < len) ? (unsigned)rem : len); pos = dicPos - rep0 + (dicPos < rep0 ? dicBufSize : 0); -- cgit v1.2.3