-rw-r--r-- | libavcodec/h264_parse.c | 5 |
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, |