From df405b1fb71ee1a43d8a7c0f5f73acf6c1648248 Mon Sep 17 00:00:00 2001 From: David Reid Date: Sat, 17 Jan 2026 20:30:05 +1000 Subject: [PATCH] PipeWire: Fix a crash in device enumeration. --- extras/backends/pipewire/miniaudio_pipewire.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/extras/backends/pipewire/miniaudio_pipewire.c b/extras/backends/pipewire/miniaudio_pipewire.c index 681e040f..8df7ea55 100644 --- a/extras/backends/pipewire/miniaudio_pipewire.c +++ b/extras/backends/pipewire/miniaudio_pipewire.c @@ -1826,6 +1826,10 @@ static int ma_on_metadata_property_default__pipewire(void* data, ma_uint32 subje (void)subject; (void)type; + if (key == NULL) { + return 0; + } + /* Well this is fun. To get the default device we need to get the value of the "default.audio.sink" and "default.audio.source" keys. Sounds simple enough, except that the value is actually JSON... Why is the default device stored as a JSON string? Who does this? We're just