summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorMichael Niedermayer <michael@niedermayer.cc>2023-05-03 13:08:35 +0200
committerMichael Niedermayer <michael@niedermayer.cc>2023-05-06 00:22:24 +0200
commit6b1f68ccb04d791f0250e05687c346a99ff47ea1 (patch)
treed29c563e0ca74bb0775a40c3cd626d74e9a19ac2 /libavformat
parent5cc378cc466121fc9de1657ea76deeba9f92089a (diff)
downloadffmpeg-6b1f68ccb04d791f0250e05687c346a99ff47ea1.tar.gz
avformat/hls: fail on probing non hls/m3u8 file extensions
Its unexpected that a .avi or other "standard" file turns into a playlist. The goal of this patch is to avoid this unexpected behavior and possible privacy or security differences. Reviewed-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/hls.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/libavformat/hls.c b/libavformat/hls.c
index 8a96a37ff9..11e345b280 100644
--- a/libavformat/hls.c
+++ b/libavformat/hls.c
@@ -2532,8 +2532,15 @@ static int hls_probe(const AVProbeData *p)
if (strstr(p->buf, "#EXT-X-STREAM-INF:") ||
strstr(p->buf, "#EXT-X-TARGETDURATION:") ||
- strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:"))
+ strstr(p->buf, "#EXT-X-MEDIA-SEQUENCE:")) {
+
+ if (!av_match_ext(p->filename, "m3u8,hls,m3u")) {
+ av_log(NULL, AV_LOG_ERROR, "Not detecting m3u8/hls with non standard extension\n");
+ return 0;
+ }
+
return AVPROBE_SCORE_MAX;
+ }
return 0;
}