On 2014-01-01 13:00:59 +0100, Anton Khirnov wrote: > If it was set before then we can end up trying to decode a slice without > a valid slice header, which can lead to invalid memory access. > > Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind > CC:[email protected] > --- > libavcodec/h264.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/h264.c b/libavcodec/h264.c > index 07a93cf..21c1b8f 100644 > --- a/libavcodec/h264.c > +++ b/libavcodec/h264.c > @@ -4725,8 +4725,13 @@ again: > hx->intra_gb_ptr = > hx->inter_gb_ptr = NULL; > > - if ((err = decode_slice_header(hx, h)) < 0) > + if ((err = decode_slice_header(hx, h)) < 0) { > + /* make sure data_partitioning is cleared if it was set > + * before, so we don't try decoding a slice without a > valid > + * slice header later */ > + h->data_partitioning = 0; > break; > + } > > hx->data_partitioning = 1; > break;
ok Janne _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
