avcodec/wmaprodec: reset offsets when error happens
authorPaul B Mahol <onemda@gmail.com>
Mon, 20 Mar 2017 14:05:01 +0000 (15:05 +0100)
committerPaul B Mahol <onemda@gmail.com>
Mon, 20 Mar 2017 14:36:55 +0000 (15:36 +0100)
Fixes #6250.

Signed-off-by: Paul B Mahol <onemda@gmail.com>
libavcodec/wmaprodec.c

index 1ad1e23..5b1fe40 100644 (file)
@@ -1760,6 +1760,10 @@ static int xma_decode_packet(AVCodecContext *avctx, void *data,
             memcpy(&s->samples[s->current_stream * 2 + 1][s->offset[s->current_stream] * 512],
                    s->frames[s->current_stream]->extended_data[1], 512 * 4);
         s->offset[s->current_stream]++;
+    } else if (ret < 0) {
+        memset(s->offset, 0, sizeof(s->offset));
+        s->current_stream = 0;
+        return ret;
     }
 
     if (s->xma[s->current_stream].packet_done ||