usb: gadget: u_audio: Fix the size of a buffer in a strscpy() call
The size given to strscpy() is not consistent with the destination buffer that is used. The size is related to 'driver' and the buffer is 'mixername'. sizeof(card->mixername) is 80 and sizeof(card->driver) is 16, so in theory this could lead to unneeded string truncation. In practice, this is not the case because g_audio_setup() has only 2 callers. 'card_name' is either "UAC1_Gadget" or "UAC2_Gadget". Anyway, using the correct size is cleaner and more future proof. In order to be less verbose, use the new 2-argument version of strscpy() which computes auto-magically the size of the destination. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Link: https://lore.kernel.org/r/bf8a9353319566624f653531b80e5caf3d346ba1.1711176700.git.christophe.jaillet@wanadoo.fr Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f8453bbde0
commit
16fac24217
@ -1257,7 +1257,7 @@ int g_audio_setup(struct g_audio *g_audio, const char *pcm_name,
|
||||
if ((c_chmask && g_audio->in_ep_fback)
|
||||
|| (p_chmask && params->p_fu.id)
|
||||
|| (c_chmask && params->c_fu.id))
|
||||
strscpy(card->mixername, card_name, sizeof(card->driver));
|
||||
strscpy(card->mixername, card_name);
|
||||
|
||||
if (c_chmask && g_audio->in_ep_fback) {
|
||||
kctl = snd_ctl_new1(&u_audio_controls[UAC_FBACK_CTRL],
|
||||
|
Loading…
Reference in New Issue
Block a user