summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--libavcodec/h264_parse.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/libavcodec/h264_parse.c b/libavcodec/h264_parse.c
index ea202e7..e21582b 100644
--- a/libavcodec/h264_parse.c
+++ b/libavcodec/h264_parse.c
@@ -455,6 +455,9 @@ int ff_h264_decode_extradata(const uint8_t *data, int size, H264ParamSets *ps,
nalsize = AV_RB16(p) + 2;
if (nalsize > size - (p - data))
return AVERROR_INVALIDDATA;
+ if (nalsize < 0)
+ return AVERROR_INVALIDDATA;
+
ret = decode_extradata_ps_mp4(p, nalsize, ps, err_recognition, logctx);
if (ret < 0) {
av_log(logctx, AV_LOG_ERROR,
@@ -469,6 +472,8 @@ int ff_h264_decode_extradata(const uint8_t *data, int size, H264ParamSets *ps,
nalsize = AV_RB16(p) + 2;
if (nalsize > size - (p - data))
return AVERROR_INVALIDDATA;
+ if (nalsize < 0)
+ return AVERROR_INVALIDDATA;
ret = decode_extradata_ps_mp4(p, nalsize, ps, err_recognition, logctx);
if (ret < 0) {
av_log(logctx, AV_LOG_ERROR,