• Kuninori Morimoto's avatar
    ALSA: asihpi: check pao in control_message() · 9026c0bf
    Kuninori Morimoto authored
    control_message() might be called with pao = NULL.
    Here indicates control_message() as sample.
    
    (B)	static void control_message(struct hpi_adapter_obj *pao, ...)
    	{                                                   ^^^
    		struct hpi_hw_obj *phw = pao->priv;
    		...                      ^^^
    	}
    
    (A)	void _HPI_6205(struct hpi_adapter_obj *pao, ...)
    	{                                      ^^^
    		...
    		case HPI_OBJ_CONTROL:
    (B)			control_message(pao, phm, phr);
    			break;          ^^^
    		...
    	}
    
    	void HPI_6205(...)
    	{
    		...
    (A)		_HPI_6205(NULL, phm, phr);
    		...       ^^^^
    	}
    
    Therefore, We will get too many warning via cppcheck, like below
    
    	sound/pci/asihpi/hpi6205.c:238:27: warning: Possible null pointer dereference: pao [nullPointer]
    		 struct hpi_hw_obj *phw = pao->priv;
    		                          ^
    	sound/pci/asihpi/hpi6205.c:433:13: note: Calling function '_HPI_6205', 1st argument 'NULL' value is 0
    		  _HPI_6205(NULL, phm, phr);
    		            ^
    	sound/pci/asihpi/hpi6205.c:401:20: note: Calling function 'control_message', 1st argument 'pao' value is 0
    	   control_message(pao, phm, phr);
    	                   ^
    Set phr->error like many functions doing, and don't call _HPI_6205()
    with NULL.
    Signed-off-by: default avatarKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Link: https://lore.kernel.org/r/87ttypeaqz.wl-kuninori.morimoto.gx@renesas.comSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    9026c0bf
hpi6205.c 63.9 KB