aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/hevc_ps.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2014-10-27 14:03:09 +0100
committerMichael Niedermayer <michaelni@gmx.at>2014-10-27 14:03:09 +0100
commit852aaead1fc294bcb63a1f9e384e781f6e51ded6 (patch)
treee3770e8bbe76de24909e0057612a33d29b9c2a45 /libavcodec/hevc_ps.c
parent69a9a90d2ef795162074be24e3ad2182a8676af2 (diff)
downloadffmpeg-852aaead1fc294bcb63a1f9e384e781f6e51ded6.tar.gz
avcodec/hevc_ps: Check default display window bitstream and skip if invalid
Fixes Ticket4035 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/hevc_ps.c')
-rw-r--r--libavcodec/hevc_ps.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c
index c17ca04350..4e1c56163d 100644
--- a/libavcodec/hevc_ps.c
+++ b/libavcodec/hevc_ps.c
@@ -525,7 +525,11 @@ static void decode_vui(HEVCContext *s, HEVCSPS *sps)
vui->field_seq_flag = get_bits1(gb);
vui->frame_field_info_present_flag = get_bits1(gb);
- vui->default_display_window_flag = get_bits1(gb);
+ if (get_bits_left(gb) >= 68 && show_bits_long(gb, 21) == 0x100000) {
+ vui->default_display_window_flag = 0;
+ av_log(s->avctx, AV_LOG_WARNING, "Invalid default display window\n");
+ } else
+ vui->default_display_window_flag = get_bits1(gb);
// Backup context in case an alternate header is detected
memcpy(&backup, gb, sizeof(backup));