avformat/dsfdec: fix calculation of size of data chunk
authorPaul B Mahol <onemda@gmail.com>
Sun, 22 Apr 2018 11:14:26 +0000 (13:14 +0200)
committerPaul B Mahol <onemda@gmail.com>
Sun, 22 Apr 2018 11:14:26 +0000 (13:14 +0200)
Ignore extra 12 bytes that belong to tag and size.

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

index e0485f1..5e06fd6 100644 (file)
@@ -137,8 +137,8 @@ static int dsf_read_header(AVFormatContext *s)
     dsf->data_end = avio_tell(pb);
     if (avio_rl32(pb) != MKTAG('d', 'a', 't', 'a'))
         return AVERROR_INVALIDDATA;
-    dsf->data_size = avio_rl64(pb);
-    dsf->data_end += dsf->data_size;
+    dsf->data_size = avio_rl64(pb) - 12;
+    dsf->data_end += dsf->data_size + 12;
     s->internal->data_offset = avio_tell(pb);
 
     return 0;