Skip to content
Snippets Groups Projects
Commit d66fbc14 authored by Reimar Döffinger's avatar Reimar Döffinger
Browse files

Wrong state handling causing decompression errors in some cases

Originally committed as revision 4852 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent f3b60109
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment