aboutsummaryrefslogtreecommitdiff
path: root/decoder/ih264d_sei.c
diff options
context:
space:
mode:
Diffstat (limited to 'decoder/ih264d_sei.c')
-rw-r--r--decoder/ih264d_sei.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/decoder/ih264d_sei.c b/decoder/ih264d_sei.c
index 079f036..e7d436c 100644
--- a/decoder/ih264d_sei.c
+++ b/decoder/ih264d_sei.c
@@ -853,6 +853,14 @@ WORD32 ih264d_parse_fgc(dec_bit_stream_t *ps_bitstrm, dec_struct_t *ps_dec,
for(i = 0; i <= ps_sei->s_sei_fgc_params.au1_num_intensity_intervals_minus1[c]; i++)
{
+ /* Although the fag end of both the NALU and the bitstream buffer */
+ /* is being parsed, not all FGC SEI symbols would have been */
+ /* decoded semantically. The code below detects this condition */
+ if((ps_bitstrm->u4_ofst + 8 + 8) >= ps_bitstrm->u4_max_ofst)
+ {
+ return ERROR_INV_SEI_FGC_PARAMS;
+ }
+
ps_sei->s_sei_fgc_params.au1_intensity_interval_lower_bound[c][i] =
(UWORD8) ih264d_get_bits_h264(ps_bitstrm, 8);