avformat/wtvdec: Check pointer before use
authorMichael Niedermayer <michael@niedermayer.cc>
Sun, 21 Aug 2016 19:30:36 +0000 (21:30 +0200)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 25 Aug 2016 01:29:36 +0000 (03:29 +0200)
Fixes out of array read
Fixes: 049fdf78565f1ce5665df236d90f8657/asan_heap-oob_10a5a97_1026_42f9d4855547329560f385768de2f3fb.wtv

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit cc5e5548df4af48674c7aef518e831b19e99f9fc)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavformat/wtvdec.c

index bd32d70..3ac4501 100644 (file)
@@ -1031,7 +1031,7 @@ static int read_header(AVFormatContext *s)
                     while (1) {
                         uint64_t frame_nb = avio_rl64(pb);
                         uint64_t position = avio_rl64(pb);
-                        while (frame_nb > e->size && e <= e_end) {
+                        while (e <= e_end && frame_nb > e->size) {
                             e->pos = last_position;
                             e++;
                         }