avformat/hls: Check for integer overflow with #EXTINF:

Found-by: 이동준 <ldj6192@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer
2026-02-04 16:43:39 +01:00
committed by michaelni
parent af86f0ffcc
commit f112ae503e

View File

@@ -970,8 +970,13 @@ static int parse_playlist(HLSContext *c, const char *url,
if (pls)
pls->finished = 1;
} else if (av_strstart(line, "#EXTINF:", &ptr)) {
double d = atof(ptr) * AV_TIME_BASE;
if (d < 0 || d > INT64_MAX || isnan(d)) {
av_log(c->ctx, AV_LOG_WARNING, "EXTINF %f unsupported\n", d / AV_TIME_BASE);
d = 0;
}
duration = d;
is_segment = 1;
duration = atof(ptr) * AV_TIME_BASE;
} else if (av_strstart(line, "#EXT-X-BYTERANGE:", &ptr)) {
seg_size = strtoll(ptr, NULL, 10);
ptr = strchr(ptr, '@');