X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fbintext.c;h=520d68a7c072c3e2c8e469a81343d55578df332e;hb=a247ac640df3da573cd661065bf53f37863e2b46;hp=d85f2c2dd443504d8d51f32ec36e59b5f622c4a0;hpb=4dc1f06f0c84ebbd8b26cd77679450903244a3e8;p=ffmpeg diff --git a/libavcodec/bintext.c b/libavcodec/bintext.c index d85f2c2dd44..520d68a7c07 100644 --- a/libavcodec/bintext.c +++ b/libavcodec/bintext.c @@ -63,6 +63,10 @@ static av_cold int decode_init(AVCodecContext *avctx) av_log(avctx, AV_LOG_ERROR, "not enough extradata\n"); return AVERROR_INVALIDDATA; } + if (!s->font_height) { + av_log(avctx, AV_LOG_ERROR, "invalid font height\n"); + return AVERROR_INVALIDDATA; + } } else { s->font_height = 8; s->flags = 0; @@ -93,8 +97,10 @@ static av_cold int decode_init(AVCodecContext *avctx) break; } } - if (avctx->width < FONT_WIDTH || avctx->height < s->font_height) + if (avctx->width < FONT_WIDTH || avctx->height < s->font_height) { + av_log(avctx, AV_LOG_ERROR, "Resolution too small for font.\n"); return AVERROR_INVALIDDATA; + } return 0; } @@ -209,7 +215,7 @@ static int decode_frame(AVCodecContext *avctx, } #if CONFIG_BINTEXT_DECODER -AVCodec ff_bintext_decoder = { +const AVCodec ff_bintext_decoder = { .name = "bintext", .long_name = NULL_IF_CONFIG_SMALL("Binary text"), .type = AVMEDIA_TYPE_VIDEO, @@ -221,7 +227,7 @@ AVCodec ff_bintext_decoder = { }; #endif #if CONFIG_XBIN_DECODER -AVCodec ff_xbin_decoder = { +const AVCodec ff_xbin_decoder = { .name = "xbin", .long_name = NULL_IF_CONFIG_SMALL("eXtended BINary text"), .type = AVMEDIA_TYPE_VIDEO, @@ -233,7 +239,7 @@ AVCodec ff_xbin_decoder = { }; #endif #if CONFIG_IDF_DECODER -AVCodec ff_idf_decoder = { +const AVCodec ff_idf_decoder = { .name = "idf", .long_name = NULL_IF_CONFIG_SMALL("iCEDraw text"), .type = AVMEDIA_TYPE_VIDEO,