Commit b144e25c authored by Hugo Beauzée-Luyssen's avatar Hugo Beauzée-Luyssen Committed by Jean-Baptiste Kempf

mpeg4audio: Fix a crash with some invalid streams.

If rate stays at 0, a FPE will be raised in SetupOutput.
(cherry picked from commit f5bc59c5)
Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent eea09900
......@@ -808,20 +808,23 @@ static int LOASParse( decoder_t *p_dec, uint8_t *p_buffer, int i_buffer )
p_sys->i_rate = st->cfg.i_samplerate;
p_sys->i_frame_length = st->cfg.i_frame_length;
/* FIXME And if it changes ? */
if( !p_dec->fmt_out.i_extra && st->i_extra > 0 )
if ( p_sys->i_channels > 0 && p_sys->i_rate > 0 &&
p_sys->i_frame_length > 0 )
{
p_dec->fmt_out.i_extra = st->i_extra;
p_dec->fmt_out.p_extra = malloc( st->i_extra );
if( !p_dec->fmt_out.p_extra )
/* FIXME And if it changes ? */
if( !p_dec->fmt_out.i_extra && st->i_extra > 0 )
{
p_dec->fmt_out.i_extra = 0;
return 0;
p_dec->fmt_out.i_extra = st->i_extra;
p_dec->fmt_out.p_extra = malloc( st->i_extra );
if( !p_dec->fmt_out.p_extra )
{
p_dec->fmt_out.i_extra = 0;
return 0;
}
memcpy( p_dec->fmt_out.p_extra, st->extra, st->i_extra );
}
memcpy( p_dec->fmt_out.p_extra, st->extra, st->i_extra );
p_sys->b_latm_cfg = true;
}
p_sys->b_latm_cfg = true;
}
}
/* Wait for the configuration */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment