Fix audioMasterSpecific related segfaults

Not initializing our buffer is fine if something is going to write to
it, but in this case the default way to handle
`audioMasterSpecific` (and any other opcode without specific behaviour)
would be to treat it as a writable string. Since the host wasn't
actually writing to it we would just send some old data from the stack
back which obviously would cause some plugins to crash.
This commit is contained in:
Robbert van der Helm
2020-03-28 22:56:48 +01:00
parent 1fd60bb3ec
commit 8ab5fff914
2 changed files with 4 additions and 2 deletions
+4 -1
View File
@@ -196,7 +196,10 @@ void passthrough_event(boost::asio::local::stream_protocol::socket& socket,
event.payload, event.option);
}
std::array<char, max_string_length> string_buffer;
// This buffer is used to write strings and small objects to. We'll
// initialize it with a single null to prevent it from being read as some
// arbitrary C-style string.
std::array<char, max_string_length> string_buffer{0};
void* data = std::visit(
overload{
[&](const std::nullptr_t&) -> void* { return nullptr; },