[dev] [slstatus] [patch] volume component segfaults on sndio server.device change (OpenBSD)

1 view
Skip to first unread message

Chris Billington

unread,
Nov 21, 2025, 12:04:30 AMNov 21
to d...@suckless.org
On OpenBSD 7.8 (which uses sndiod) the audio volume component of
slstatus reliably segfaults when the sndio server is switched at
runtime, for example with 'sndioctl server.device=1' when the current
device is server.device-0.

The following minimal patch adds a check to prevent a NULL pointer
dereference and avoid the segfault.

Tested locally on OpenBSD 7.8/amd64, resolves the issue.

From 0a3a51ff2663c70fe2e1cc5a1b13fd75ad2e48ba Mon Sep 17 00:00:00 2001

From: Chris Billington <emu...@disroot.org>
Date: Fri, 21 Nov 2025 12:31:40 +0800
Subject: [PATCH] volume: avoid NULL dereference in onval() on sndio
device switch

---
components/volume.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/components/volume.c b/components/volume.c
index 6cec556..23ddfc5 100644
--- a/components/volume.c
+++ b/components/volume.c
@@ -89,6 +89,8 @@
if (c->addr == addr)
break;
}
+ if(c == NULL)
+ return;
c->val = val;
}

--
2.51.0

Patch is also attached because pasting it inline here messes up the
formatting somewhat.

--
Chris Billington
slstatus-volume-sndio-20251121-SHORTHASH.diff
Reply all
Reply to author
Forward
0 new messages