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

Dan Carpenter dan.carpenter at oracle.com
Wed Mar 16 08:40:54 CET 2016


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.

   616			/* don't want to fail when media_snd_device_create() fails */
   617			media_snd_device_create(chip, intf);

regards,
dan carpenter


More information about the Alsa-devel mailing list