On Sat, Dec 09, 2023 at 03:45:44PM +0000, Klemens Nanni wrote:
>
> However, detach USB during explicit playback to it, e.g.
> $ AUDIODEVICE=snd/1 ncspot
> crashes sndiod(8) rather than playback just stopping instead of switching.
>
> Using USB alone ('sndiod -f snd/1') and device defaults ('ncspot') does not
> crash when unplugging during playback.
[...]
> #2 0x000005340e83dbce in panic () at /s/usr.bin/sndiod/utils.c:138
> #3 0x000005340e839308 in sock_close (f=0x5340e842720 <slot_array>) at
> /s/usr.bin/sndiod/sock.c:183
sock_close() is called with the wrong argument. Thank you for the trace.
ok?
Index: dev.c
===================================================================
RCS file: /cvs/src/usr.bin/sndiod/dev.c,v
diff -u -p -r1.106 dev.c
--- dev.c 26 Dec 2022 19:16:03 -0000 1.106
+++ dev.c 9 Dec 2023 21:12:21 -0000
@@ -1389,7 +1389,7 @@ dev_migrate(struct dev *odev)
if (s->opt == NULL || s->opt->dev != odev)
continue;
if (s->ops != NULL) {
- s->ops->exit(s);
+ s->ops->exit(s->arg);
s->ops = NULL;
}
}