[alsa-devel] [media] sound/usb: Use Media Controller API to share media resources

Shuah Khan shuahkh at osg.samsung.com
Wed Mar 16 14:51:39 CET 2016


On 03/16/2016 01:40 AM, Dan Carpenter wrote:
> Hello Shuah Khan,
> 
> This is a semi-automatic email about new static checker warnings.
> 
> The patch aebb2b89bff0: "[media] sound/usb: Use Media Controller API 
> to share media resources" from Mar 2, 2016, leads to the following 
> Smatch complaint:
> 
> sound/usb/card.c:615 usb_audio_probe()
> 	 error: we previously assumed 'quirk' could be null (see line 534)
> 
> sound/usb/card.c
>    583		/*
>    584		 * For devices with more than one control interface, we assume the
>    585		 * first contains the audio controls. We might need a more specific
>    586		 * check here in the future.
>    587		 */
>    588		if (!chip->ctrl_intf)
>    589			chip->ctrl_intf = alts;
>    590	
>    591		chip->txfr_quirk = 0;
>    592		err = 1; /* continue */
>    593		if (quirk && quirk->ifnum != QUIRK_NO_INTERFACE) {
>                     ^^^^^
> Old code assumes "quirk" can be NULL.
> 
>    594			/* need some special handlings */
>    595			err = snd_usb_create_quirk(chip, intf, &usb_audio_driver, quirk);
>    596			if (err < 0)
>    597				goto __error;
>    598		}
>    599	
>    600		if (err > 0) {
>    601			/* create normal USB audio interfaces */
>    602			err = snd_usb_create_streams(chip, ifnum);
>    603			if (err < 0)
>    604				goto __error;
>    605			err = snd_usb_create_mixer(chip, ifnum, ignore_ctl_error);
>    606			if (err < 0)
>    607				goto __error;
>    608		}
>    609	
>    610		/* we are allowed to call snd_card_register() many times */
>    611		err = snd_card_register(chip->card);
>    612		if (err < 0)
>    613			goto __error;
>    614	
>    615		if (quirk->media_device) {
>                     ^^^^^^^^^^^^^^^^^^^
> Patch adds an unchecked dereference.

Nicolai Stange sent in a patch to fix this.

thanks,
-- Shuah
> 
>    616			/* don't want to fail when media_snd_device_create() fails */
>    617			media_snd_device_create(chip, intf);
> 
> regards,
> dan carpenter
> 


-- 
Shuah Khan
Sr. Linux Kernel Developer
Open Source Innovation Group
Samsung Research America (Silicon Valley)
shuahkh at osg.samsung.com | (970) 217-8978


More information about the Alsa-devel mailing list