From 7e94d691b5900bfa97c82fbc2ec7aac27830c585 Mon Sep 17 00:00:00 2001 From: Attila Fidan Date: Wed, 16 Jul 2025 20:49:04 +0000 Subject: [PATCH] demux_libarchive: escape '%' in stream URL path Opening paths that are detected as archives which contain '%[0-9A-Fa-f][0-9A-Fa-f]' will fail, because such sequence is treated as a percent-encoded value when the path gets unescaped causing the path to be mangled. Escape '%' to prevent this from happening. Fixes: 2b280f4522a288429253b396b778d60ed018312c ("stream: libarchive wrapper for reading compressed archives") --- demux/demux_libarchive.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demux/demux_libarchive.c b/demux/demux_libarchive.c index db9257d6cd..d9d33eec88 100644 --- a/demux/demux_libarchive.c +++ b/demux/demux_libarchive.c @@ -76,7 +76,7 @@ static int open_file(struct demuxer *demuxer, enum demux_check check) struct playlist *pl = talloc_zero(demuxer, struct playlist); demuxer->playlist = pl; - char *prefix = mp_normalize_path(NULL, mp_url_escape(mpa, demuxer->stream->url, "~|")); + char *prefix = mp_normalize_path(NULL, mp_url_escape(mpa, demuxer->stream->url, "~|%")); char **files = NULL; int num_files = 0;