diff options
author | lummax <luogpg@googlemail.com> | 2015-08-27 12:40:30 +0200 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2015-08-27 17:26:24 +0200 |
commit | 0c800b27611cadd64f46fd1bbd9dc8bb87fe168b (patch) | |
tree | 7c72f5f8dafe7498e29ea2433db22c349c073bb6 | |
parent | 1dd854e10fe19d3a9cee38f886f66707c082c132 (diff) | |
download | ffmpeg-0c800b27611cadd64f46fd1bbd9dc8bb87fe168b.tar.gz |
avcodec: Assert on codec->encode2 in encode_audio2
Assert on `avctx->codec->encode2` to avoid a SEGFAULT on the subsequent
function call.
avcodec_encode_video2() uses a similar assertion.
Calling the wrong function on a stream is a serious inconsistency
which could at other places be potentially dangerous and exploitable,
it is thus safer to stop execution and not continue with such
inconsistency after returning an error.
Commit-message-extended-by commiter
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r-- | libavcodec/utils.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 4da16eeb54..f51070c5bc 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -1953,6 +1953,8 @@ int attribute_align_arg avcodec_encode_audio2(AVCodecContext *avctx, } } + av_assert0(avctx->codec->encode2); + ret = avctx->codec->encode2(avctx, avpkt, frame, got_packet_ptr); if (!ret) { if (*got_packet_ptr) { |