mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/decode: Check size before opening iconv
Avoids closing iconv when the size check fails. Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
684e501cb9
commit
a272f382d3
|
@ -884,18 +884,17 @@ static int recode_subtitle(AVCodecContext *avctx,
|
|||
return 0;
|
||||
|
||||
#if CONFIG_ICONV
|
||||
cd = iconv_open("UTF-8", avctx->sub_charenc);
|
||||
av_assert0(cd != (iconv_t)-1);
|
||||
|
||||
inb = inpkt->data;
|
||||
inl = inpkt->size;
|
||||
|
||||
if (inl >= INT_MAX / UTF8_MAX_BYTES - AV_INPUT_BUFFER_PADDING_SIZE) {
|
||||
av_log(avctx, AV_LOG_ERROR, "Subtitles packet is too big for recoding\n");
|
||||
ret = AVERROR(ENOMEM);
|
||||
goto end;
|
||||
return AVERROR(ERANGE);
|
||||
}
|
||||
|
||||
cd = iconv_open("UTF-8", avctx->sub_charenc);
|
||||
av_assert0(cd != (iconv_t)-1);
|
||||
|
||||
ret = av_new_packet(&tmp, inl * UTF8_MAX_BYTES);
|
||||
if (ret < 0)
|
||||
goto end;
|
||||
|
|
Loading…
Reference in New Issue