mirror of
https://github.com/mpv-player/mpv
synced 2025-03-25 04:38:01 +00:00
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. |
||
---|---|---|
.. | ||
cookies.c | ||
cookies.h | ||
stream_avdevice.c | ||
stream_cb.c | ||
stream_edl.c | ||
stream_file.c | ||
stream_lavf.c | ||
stream_libarchive.c | ||
stream_libarchive.h | ||
stream_memory.c | ||
stream_mf.c | ||
stream_null.c | ||
stream.c | ||
stream.h |