diff options
author | Vittorio Giovara <vittorio.giovara@gmail.com> | 2016-06-26 20:08:53 -0400 |
---|---|---|
committer | Vittorio Giovara <vittorio.giovara@gmail.com> | 2016-06-29 15:25:42 -0400 |
commit | d8f3b0fb584677d4882e3a2d7c28f8b15c7319f5 (patch) | |
tree | 91eb4ff70667575274abe1237709b2ebd731e0ed /libavcodec | |
parent | eeb6849cedac099d41feb482da581f4059c63ca7 (diff) | |
download | ffmpeg-streaming-d8f3b0fb584677d4882e3a2d7c28f8b15c7319f5.zip ffmpeg-streaming-d8f3b0fb584677d4882e3a2d7c28f8b15c7319f5.tar.gz |
targaenc: Move size check to initialization function
In case of bogus input, fail early at codec initialization, rather than
at the encode function.
Diffstat (limited to 'libavcodec')
-rw-r--r-- | libavcodec/targaenc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c index 204ecfe..f0cee38 100644 --- a/libavcodec/targaenc.c +++ b/libavcodec/targaenc.c @@ -89,10 +89,6 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, int bpp, picsize, datasize = -1, ret; uint8_t *out; - if(avctx->width > 0xffff || avctx->height > 0xffff) { - av_log(avctx, AV_LOG_ERROR, "image dimensions too large\n"); - return AVERROR(EINVAL); - } picsize = av_image_get_buffer_size(avctx->pix_fmt, avctx->width, avctx->height, 1); if ((ret = ff_alloc_packet(pkt, picsize + 45)) < 0) { @@ -167,6 +163,11 @@ FF_ENABLE_DEPRECATION_WARNINGS static av_cold int targa_encode_init(AVCodecContext *avctx) { + if (avctx->width > 0xffff || avctx->height > 0xffff) { + av_log(avctx, AV_LOG_ERROR, "image dimensions too large\n"); + return AVERROR(EINVAL); + } + #if FF_API_CODED_FRAME FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->key_frame = 1; |