NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/54282: kernel panic when 'sysctl hw.audio0'
The following reply was made to PR kern/54282; it has been noted by GNATS.
From: Tetsuya Isaki <isaki%pastel-flower.jp@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: kern-bug-people%netbsd.org@localhost,
gnats-admin%netbsd.org@localhost,
netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/54282: kernel panic when 'sysctl hw.audio0'
Date: Sat, 08 Jun 2019 13:35:34 +0900
At Fri, 7 Jun 2019 02:20:01 +0000 (UTC),
coypu%sdf.org@localhost wrote:
> [ 40243.607036] fatal protection fault in supervisor mode
> [ 40243.617050] trap type 4 code 0 rip 0xffffffff807a48ad cs 0x8 rflags 0x10206 cr2 0x7f7fffff4ff8 ilevel 0 rsp 0xffff96017f7a3dd0
> [ 40243.617050] curlwp 0xfffffe54ee54b0a0 pid 17473.1 lowest kstack 0xffff96017f7a02c0
What's in 0xffffffff807a48ad in this kernel?
# Although I'm not familiar with amd64 processor.
At Fri, 7 Jun 2019 02:25:01 +0000 (UTC),
coypu%sdf.org@localhost wrote:
> It looks like sc->sc_pmixer can be freed in normal use.
>
> ioctl AUDIO_SETFORMAT
> audio_mixers_set_format
> audio_mixers_init {
> ...
> audio_mixer_destroy(sc, sc->sc_pmixer);
> kmem_free(sc->sc_pmixer, sizeof(*sc->sc_pmixer));
>
> }
> This holds a lock, but audio_sysctl_volume dereferences
> sc_pmixer without a lock.
>
> if (sc->sc_pmixer)
> t = sc->sc_pmixer->volume;
>
> This sounds racy.
I will see about it later anyway, but it's not related to this PR.
sc->sc_pmixer is only freed by AUDIO_SETFORMAT called by audiocfg(8).
Freeing never happens during playback/recording is running.
Thanks,
---
Tetsuya Isaki <isaki%pastel-flower.jp@localhost / isaki%NetBSD.org@localhost>
Home |
Main Index |
Thread Index |
Old Index