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().
This commit is contained in:
parent
ecee6f415b
commit
4d6ae6ffdd
1
NEWS
1
NEWS
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue