diff --git a/libavcodec/xan.c b/libavcodec/xan.c index 91c22c3d2f..c2d4007ccb 100644 --- a/libavcodec/xan.c +++ b/libavcodec/xan.c @@ -156,12 +156,8 @@ static void xan_unpack(unsigned char *dest, const unsigned char *src, int dest_l av_memcpy_backptr(dest, back, size2); dest += size2; } else { - int finish; - size = ((opcode & 0x1f) << 2) + 4; - - finish = size > 0x70; - if (finish) - size = opcode & 3; + int finish = opcode >= 0xfc; + size = finish ? opcode & 3 : ((opcode & 0x1f) << 2) + 4; memcpy(dest, src, size); dest += size; src += size; if (finish)