mpv/player
George Brooke 1a3e85ec33 ytdl_hook: fix url_is_safe to match URL protocols properly
Some youtube_dl extractors retrieve URLs which contain other URLs
inside of them, for example Funimation, like this:
https://example.com/video?parameter=https://example.net/something

The url_is_safe function uses a pattern to match the protocol at the
start of the URL. Before this commit, this pattern was not compliant
with the URL spec (see the definition of "A URL-scheme string"):
https://url.spec.whatwg.org/#url-writing
Therefore it would match any characters, including "://", until the
last occurence of "://" in the string. Thus the above URL would match
https://example.com/video?parameter=https
which is not in safe_protos so the video will not play.

Now the protocol can only start with a letter and only contain
alphanumerics, "." "+" or "-" as the spec says, so it will only match
the first protocol in the URL ("https" in the above example.)
Previously the URL also had to contain "//" after the ":". Data URLs
do not contain "//": https://datatracker.ietf.org/doc/html/rfc2397
so now the pattern does not look for "//", only ":".
2022-03-02 20:59:33 +02:00
..
javascript js: utils.get_user_path: make wrapper of expand-path 2022-02-04 12:53:16 +02:00
lua ytdl_hook: fix url_is_safe to match URL protocols properly 2022-03-02 20:59:33 +02:00
audio.c audio: fix typo 2021-12-03 14:04:58 -08:00
client.c player: make deprecated track/chapter/metadata events internal 2021-12-15 12:29:10 +01:00
client.h
command.c vo_gpu_next: refactor subtitle rendering 2022-02-21 12:01:44 +01:00
command.h player: make deprecated track/chapter/metadata events internal 2021-12-15 12:29:10 +01:00
configfiles.c options: add watch-later-options 2021-07-21 13:19:28 +00:00
core.h player: add track-list/N/image sub-property 2021-10-14 15:39:07 +00:00
external_files.c player: add thd (TrueHD) to whitelist of audio extensions 2022-01-19 14:00:05 +00:00
external_files.h player: add automatic loading of external cover art files 2020-09-28 00:12:52 +02:00
javascript.c js: utils.get_user_path: make wrapper of expand-path 2022-02-04 12:53:16 +02:00
loadfile.c player: make deprecated track/chapter/metadata events internal 2021-12-15 12:29:10 +01:00
lua.c lua: remove mp.suspend, resume and resume_all 2021-12-15 12:29:10 +01:00
main.c options: add watch-later-options 2021-07-21 13:19:28 +00:00
misc.c audio: refactor how data is passed to AO 2020-08-29 13:12:32 +02:00
osd.c
playloop.c options: add always to stop-screensaver 2022-02-18 22:04:08 +00:00
screenshot.c screenshot: add --screenshot-sw option 2020-10-05 00:16:46 +02:00
screenshot.h
scripting.c player/scripting: fix use-after-free when loading script folders 2021-04-08 23:47:35 +03:00
sub.c sub: align ytdl-hook secondary subs to the top 2021-08-11 18:15:35 +00:00
video.c {player,video}: remove references to obsolete opengl-cb API 2021-12-15 12:29:10 +01:00