Re: [PATCH] ALSA: hda/ca0132: fixup buffer overrun at tuning_ctl_set()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, 13 Mar 2023 01:50:28 +0100,
Kuninori Morimoto wrote:
> 
> tuning_ctl_set() might have buffer overrun at (X) if it didn't break
> from loop by matching (A).
> 
> 	static int tuning_ctl_set(...)
> 	{
> 		for (i = 0; i < TUNING_CTLS_COUNT; i++)
> (A)			if (nid == ca0132_tuning_ctls[i].nid)
> 				break;
> 
> 		snd_hda_power_up(...);
> (X)		dspio_set_param(..., ca0132_tuning_ctls[i].mid, ...);
> 		snd_hda_power_down(...);                ^
> 
> 		return 1;
> 	}
> 
> We will get below error by cppcheck
> 
> 	sound/pci/hda/patch_ca0132.c:4229:2: note: After for loop, i has value 12
> 	 for (i = 0; i < TUNING_CTLS_COUNT; i++)
> 	 ^
> 	sound/pci/hda/patch_ca0132.c:4234:43: note: Array index out of bounds
> 	 dspio_set_param(codec, ca0132_tuning_ctls[i].mid, 0x20,
> 	                                           ^
> This patch cares non match case.
> 
> Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>

Thanks, applied now.


Takashi



[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Pulse Audio]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux