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>
pull/146/head
lummax 9 years ago committed by Michael Niedermayer
parent 1dd854e10f
commit 0c800b2761
  1. 2
      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) {

Loading…
Cancel
Save