[alsa-devel] ALSA: timer: Handle disconnection more safely
Takashi Iwai
tiwai at suse.de
Sat Jan 23 09:56:20 CET 2016
On Fri, 22 Jan 2016 20:52:48 +0100,
Dan Carpenter wrote:
>
> Hello Takashi Iwai,
>
> This is a semi-automatic email about new static checker warnings.
>
> The patch 230323dac060: "ALSA: timer: Handle disconnection more
> safely" from Jan 21, 2016, leads to the following Smatch complaint:
>
> sound/core/timer.c:1091 snd_timer_proc_read()
> error: we previously assumed 'timer->card' could be null (see line 1084)
>
> sound/core/timer.c
> 1083 list_for_each_entry(timer, &snd_timer_list, device_list) {
> 1084 if (timer->card && timer->card->shutdown)
> ^^^^^^^^^^^
> New test.
This checks for all timer classes including the one that doesn't have
card object assigned.
> 1085 continue;
> 1086 switch (timer->tmr_class) {
> 1087 case SNDRV_TIMER_CLASS_GLOBAL:
> 1088 snd_iprintf(buffer, "G%i: ", timer->tmr_device);
> 1089 break;
> 1090 case SNDRV_TIMER_CLASS_CARD:
> 1091 snd_iprintf(buffer, "C%i-%i: ",
> 1092 timer->card->number, timer->tmr_device);
> ^^^^^^^^^^^^^^^^^^^
> Old untested dereference. But maybe SNDRV_TIMER_CLASS_CARD implies
> non-NULL?
Yes. So the current code is correct.
Takashi
More information about the Alsa-devel
mailing list