Commit fa67c254 authored by Max Kellermann's avatar Max Kellermann

decoder/Thread: clear the command after catching an exception

If an early exception gets caught (e.g. from AllocatedPath::FromUTF8Throw()) before DecoderControl::CommandFinishedLocked() is called, the decoder thread would go in an endless loop, because DecoderCommand::START is still set. Closes #118
parent ea80587d
......@@ -5,6 +5,7 @@ ver 0.20.11 (not yet released)
- ffmpeg: more reliable song duration
- gme: fix track numbering
* fix case insensitive search without libicu
* fix endless loop when accessing malformed file names in ZIP files
ver 0.20.10 (2017/08/24)
* decoder
......
......@@ -508,6 +508,7 @@ try {
decoder_run_song(dc, song, uri_utf8, path_fs);
} catch (...) {
dc.state = DecoderState::ERROR;
dc.command = DecoderCommand::NONE;
dc.error = std::current_exception();
dc.client_cond.signal();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment