summaryrefslogtreecommitdiff
path: root/libavcodec
diff options
context:
space:
mode:
authorStefano Sabatini <stefasab@gmail.com>2013-06-26 17:05:57 +0200
committerStefano Sabatini <stefasab@gmail.com>2013-06-26 23:22:13 +0200
commit47c9887ecaa764006cf661a6446b3533472f6a6e (patch)
treea3385bf1aa3a6000b3a349d57f2c461a93cfb845 /libavcodec
parentc58d535b2f998041f76a723c98ce786d214d2d06 (diff)
lavc/utils: improve feedback in case of invalid packet size
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/utils.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 97d066f8f9..9fe3a16db7 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -1395,8 +1395,13 @@ free_and_end:
int ff_alloc_packet2(AVCodecContext *avctx, AVPacket *avpkt, int size)
{
- if (size < 0 || avpkt->size < 0 || size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE) {
- av_log(avctx, AV_LOG_ERROR, "Size %d invalid\n", size);
+ if (avpkt->size < 0) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid negative user packet size %d\n", avpkt->size);
+ return AVERROR(EINVAL);
+ }
+ if (size < 0 || size > INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE) {
+ av_log(avctx, AV_LOG_ERROR, "Invalid minimum required packet size %d (max allowed is %d)\n",
+ size, INT_MAX - FF_INPUT_BUFFER_PADDING_SIZE);
return AVERROR(EINVAL);
}