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: 2b280f4522 ("stream: libarchive wrapper for reading compressed archives")
This commit is contained in:
Attila Fidan authored and sfan5 committed 2025-07-26 20:12:34 +02:00
1 parent b47fd2842a
commit 7e94d691b5
1 file changed
+1 -1
+1 -1
View File
@@ -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;