diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 12111cb86e..25c462d9c9 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -3333,6 +3333,10 @@ int ff_mov_write_packet(AVFormatContext *s, AVPacket *pkt) pkt->dts = trk->cluster[trk->entry - 1].dts + 1; pkt->pts = AV_NOPTS_VALUE; } + if (pkt->duration < 0) { + av_log(s, AV_LOG_ERROR, "Application provided duration: %d is invalid\n", pkt->duration); + return AVERROR(EINVAL); + } } if (mov->flags & FF_MOV_FLAG_FRAGMENT) { int ret;