[alsa-devel] "alsactl store" fails to save Echo Gina3G mixer
Takashi Sakamoto
o-takashi at sakamocchi.jp
Thu Aug 31 05:50:10 CEST 2017
On Aug 29 2017 12:46, S. Christian Collins wrote:
> On 08/28/2017 10:33 PM, Takashi Sakamoto wrote:
>>
>> Would you get output from below command line for your Gina 3G?
>>
>> $ amixer scontrols
>
> The output of "amixer -c 1 scontrols" is attached to this e-mail as
> "scontrols.txt".
>
>> And typically state data is stored into '/var/lib/alsa/asound.state'
>> as a default. For my information, could you disclose it if possible?
>
> Yes, it is also attached to this e-mail. The asound.state file was last
> modified on March 26th. I remember that I used to not get the error when
> using "alsactl store", so perhaps an update caused this issue to appear
> around that time?
$ alsactl -f ~/asound1.state store 1
(alsa-utils:alsactl/alsactl.c)
main()
(alsa-utils:alsactl/state.c)
->save_state()
->get_controls()
->get_control()
snd_ctl_elem_info(info)
count = snd_ctl_elem_info_get_count(info)
for (i = 0; i < count; i++)
snd_ctl_elem_value_get_integer(ctl, i)
I guess that 'snd-echo3g.ko' returns value greater than 128 in a call
graph of 'snd_ctl_elem_info_get_count()', then a call of
'snd_ctl_elem_value_get_integer()' hits an assertion in the function.
A patch mentioned by Mark Hills (a commit 275353bb684e 'ALSA: echoaudio:
purge contradictions between dimension matrix members and total number
of members') is fairly valid in a logical design of ALSA control
protocol/interface. In detail, please refer to my post[1].
Some of ALSA drivers for PCI cards produced by Echo Audio potentially
have problems which I mentioned in the post. They can cause
buffer-over-run over 'struct snd_ctl_elem_value.value' in user space.
The drivers should be going to fix.
I wrote a small program to validate dimension information for your
card[2]. Would you please execute it? Like:
$ gcc -o ./test ./alsa-ctl-dimen-check.c
$ ./test /dev/snd/controlC[0-9]
An argument is required for a path of special file for ALSA control
character device for your sound card.
[1] [alsa-devel] [PATCH 0/3] ALSA: add dimension information validator
http://mailman.alsa-project.org/pipermail/alsa-devel/2016-June/109811.html
[2] alsa-ctl-dimen-check.c
https://gist.github.com/takaswie/cd670ee88b7fd25c68780610ad8ad54f
Regards
Takashi Sakamoto
More information about the Alsa-devel
mailing list