Commit 4d6ae6ff authored by Max Kellermann's avatar Max Kellermann

output/PipeWire: add nullptr check to SetVolume()

If the PipeWire output has not yet been enabled and no thread_loop has been created yet, a nullptr dereference in SetVolume() was possible because nullptr was passed to pw_thread_loop_lock().
parent ecee6f41
......@@ -6,6 +6,7 @@ ver 0.23.8 (not yet released)
* mixer
- better error messages
- alsa: fix setting volume before playback starts
- pipewire: fix crash bug
* support libfmt 9
ver 0.23.7 (2022/05/09)
......
......@@ -312,6 +312,14 @@ PipeWireOutput::PipeWireOutput(const ConfigBlock &block)
void
PipeWireOutput::SetVolume(float _volume)
{
if (thread_loop == nullptr) {
/* the mixer is open (because it is a "global" mixer),
but Enable() on this output has not yet been
called */
volume = _volume;
return;
}
const PipeWire::ThreadLoopLock lock(thread_loop);
float newvol = _volume*_volume*_volume;
......
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