1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-29 22:00:58 +02:00
FFmpeg/libavcodec
Andreas Rheinhardt 9abda1365c avcodec/rv34, mpegvideo: Fix segfault upon frame size change error
The RealVideo 3.0 and 4.0 decoders call ff_mpv_common_init() only during
their init function and not during decode_frame(); when the size of the
frame changes, they call ff_mpv_common_frame_size_change(). Yet upon
error, said function calls ff_mpv_common_end() which frees the whole
MpegEncContext and not only those parts that
ff_mpv_common_frame_size_change() reinits. As a result, the context will
never be usable again; worse, because decode_frame() contains no check
for whether the context is initialized or not, it is presumed that it is
initialized, leading to segfaults. Basically the same happens if
rv34_decoder_realloc() fails.

This commit fixes this by only resetting the parts that
ff_mpv_common_frame_size_change() changes upon error and by actually
checking whether the context is in need of reinitialization in
ff_rv34_decode_frame().

Reviewed-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2021-04-08 01:17:24 +02:00
..
2021-03-22 02:43:04 +01:00
2021-04-06 03:20:59 +02:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-04-02 12:19:07 +02:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-04-03 11:54:12 +02:00
2021-03-22 02:43:04 +01:00
2021-03-29 22:19:39 +02:00
2021-03-22 02:43:04 +01:00
2021-03-22 02:43:04 +01:00
2021-04-01 14:45:54 +02:00