diff options
author | Reimar Döffinger <Reimar.Doeffinger@gmx.de> | 2011-11-05 23:13:07 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2011-11-26 08:38:59 +0100 |
commit | f6afacdb3b708720c9fb85984b4f7fdbca2b2036 (patch) | |
tree | 21d5b4ecbc1c91e7d2b17f26aa2a60d87618552e | |
parent | 785baa738a7c6b5bfc6ade2a7c6fade3056eeb26 (diff) | |
download | ffmpeg-f6afacdb3b708720c9fb85984b4f7fdbca2b2036.tar.gz |
nuv: check per-frame header for validity.
Since it contains dimensions parsing an invalid one has rather
annoying effects.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r-- | libavcodec/nuv.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libavcodec/nuv.c b/libavcodec/nuv.c index 7bace2ec40..94962b5843 100644 --- a/libavcodec/nuv.c +++ b/libavcodec/nuv.c @@ -184,9 +184,9 @@ static int decode_frame(AVCodecContext *avctx, void *data, int *data_size, } if (c->codec_frameheader) { int w, h, q; - if (buf_size < 12) { - av_log(avctx, AV_LOG_ERROR, "invalid nuv video frame\n"); - return -1; + if (buf[0] != 'V' || buf_size < 12) { + av_log(avctx, AV_LOG_ERROR, "invalid nuv video frame (wrong codec_tag?)\n"); + return AVERROR_INVALIDDATA; } w = AV_RL16(&buf[6]); h = AV_RL16(&buf[8]); |