On Sat, Dec 09, 2023 at 10:16:46PM +0100, Alexandre Ratchov wrote:
> 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?

Fixes the reproducer, OK kn

> 
> 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;
>               }
>       }
> 

Reply via email to