mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Wrong state handling causing decompression errors in some cases
Originally committed as revision 4852 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
f3b6010916
commit
d66fbc14de
@ -118,7 +118,6 @@ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) {
|
||||
while (!c.error) {
|
||||
int cnt, back;
|
||||
if (x >> 4) {
|
||||
state = BACKPTR;
|
||||
if (x >> 6) {
|
||||
cnt = (x >> 5) - 1;
|
||||
back = (get_byte(&c) << 3) + ((x >> 2) & 7) + 1;
|
||||
@ -155,10 +154,9 @@ int lzo1x_decode(void *out, int *outlen, void *in, int *inlen) {
|
||||
}
|
||||
copy_backptr(&c, back, cnt + 2);
|
||||
cnt = x & 3;
|
||||
state = cnt ? BACKPTR : COPY;
|
||||
if (cnt)
|
||||
copy(&c, cnt);
|
||||
else
|
||||
state = (state == COPY) ? BACKPTR : COPY;
|
||||
x = get_byte(&c);
|
||||
}
|
||||
*inlen = c.in_end - c.in;
|
||||
|
Loading…
Reference in New Issue
Block a user