[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