diff options
author | Max Kellermann <max@musicpd.org> | 2019-01-21 22:16:46 +0100 |
---|---|---|
committer | Max Kellermann <max@musicpd.org> | 2019-01-21 22:16:46 +0100 |
commit | 05db6934eb12e859b99f34c4d96674aeaa1ff90a (patch) | |
tree | 2de14d328ddde1e52b6d85310835a3aa51f59866 /src | |
parent | 02c68c5cdb7611dbb821174e589c7df9660ea240 (diff) |
FileCommands: fix deadlock in "albumart" command
Must lock the mutex before calling any of the unprotected InputStream methods.
Closes #462
Diffstat (limited to 'src')
-rw-r--r-- | src/command/FileCommands.cxx | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/command/FileCommands.cxx b/src/command/FileCommands.cxx index 863c7170e..c8af5c19b 100644 --- a/src/command/FileCommands.cxx +++ b/src/command/FileCommands.cxx @@ -285,8 +285,11 @@ read_stream_art(Response &r, const char *uri, size_t offset) uint8_t buffer[CHUNK_SIZE]; size_t read_size; - is->Seek(offset); - read_size = is->Read(&buffer, CHUNK_SIZE); + { + const std::lock_guard<Mutex> protect(mutex); + is->Seek(offset); + read_size = is->Read(&buffer, CHUNK_SIZE); + } r.Format("size: %" PRIoffset "\n" "binary: %u\n", |