diff --git a/libavformat/dhav.c b/libavformat/dhav.c index 31f4d75181..c7e5371636 100644 --- a/libavformat/dhav.c +++ b/libavformat/dhav.c @@ -281,6 +281,7 @@ static int64_t get_duration(AVFormatContext *s) } if (end_pos < 0 || end_pos + 16 > end_buffer_pos + end_buffer_size) { + av_freep(&end_buffer); avio_seek(s->pb, start_pos, SEEK_SET); return 0; } @@ -289,6 +290,8 @@ static int64_t get_duration(AVFormatContext *s) get_timeinfo(date, &timeinfo); end = av_timegm(&timeinfo) * 1000LL; + av_freep(&end_buffer); + avio_seek(s->pb, start_pos, SEEK_SET); return end - start;