1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-25 04:38:01 +00:00
mpv/stream
wm4 fe1451737e stream_libarchive: fix hangs when demuxer does out of bound seeks
This happened with a .flac file inside an archive. It tried to seek
beyond the end of the archive entry in a format where seeking isn't
supported. stream_libarchive handles these situations by skipping data.
But when the end of the archive is reached, archive_read_data() returns
0. While libarchive didn't bother to fucking document this, they do say
it's supposed to work like read(), so I guess a return value of 0 really
means EOF. So change the "< 0" to "<= 0". Also add some error logging.

The same file actually worked without out of bounds reads when
extracted, so there still might be something very wrong.
2018-09-08 16:17:36 +02:00
..
cookies.c cookies: change license to LGPL 2017-05-11 07:29:01 +02:00
cookies.h cookies: change license to LGPL 2017-05-11 07:29:01 +02:00
stream_avdevice.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_cb.c stream_cb: don't add "*://" to protocol list 2016-09-10 15:35:22 +02:00
stream_edl.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_file.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_lavf.c options: add --http-proxy 2018-05-24 19:56:35 +02:00
stream_libarchive.c stream_libarchive: fix hangs when demuxer does out of bound seeks 2018-09-08 16:17:36 +02:00
stream_libarchive.h stream_libarchive: Fix locale includes on macOS 2017-12-03 21:54:12 +01:00
stream_memory.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_mf.c demux, stream: rip out the classic stream cache 2018-08-31 12:55:22 +02:00
stream_null.c stream_null: change license to LGPL 2017-05-08 12:45:50 +02:00
stream.c demux, stream: readd cache-speed in some other form 2018-09-01 13:04:45 +02:00
stream.h stream_libarchive: remove base filename stuff 2018-09-07 21:41:52 +02:00