| From foo@baz Sun Aug 26 09:13:00 CEST 2018 |
| From: Eugeniu Rosca <erosca@de.adit-jv.com> |
| Date: Thu, 21 Jun 2018 17:22:47 +0200 |
| Subject: usb: gadget: u_audio: fix pcm/card naming in g_audio_setup() |
| |
| From: Eugeniu Rosca <erosca@de.adit-jv.com> |
| |
| [ Upstream commit dfa042fa310caa475667b8c38d852f14439e0b01 ] |
| |
| Fix below smatch (v0.5.0-4443-g69e9094e11c1) warnings: |
| drivers/usb/gadget/function/u_audio.c:607 g_audio_setup() warn: strcpy() 'pcm_name' of unknown size might be too large for 'pcm->name' |
| drivers/usb/gadget/function/u_audio.c:614 g_audio_setup() warn: strcpy() 'card_name' of unknown size might be too large for 'card->driver' |
| drivers/usb/gadget/function/u_audio.c:615 g_audio_setup() warn: strcpy() 'card_name' of unknown size might be too large for 'card->shortname' |
| |
| Below commits performed a similar 's/strcpy/strlcpy/' rework: |
| * v2.6.31 commit 8372d4980fbc ("ALSA: ctxfi - Fix PCM device naming") |
| * v4.14 commit 003d3e70dbeb ("ALSA: ad1848: fix format string overflow warning") |
| * v4.14 commit 6d8b04de87e1 ("ALSA: cs423x: fix format string overflow warning") |
| |
| Fixes: eb9fecb9e69b ("usb: gadget: f_uac2: split out audio core") |
| Signed-off-by: Eugeniu Rosca <erosca@de.adit-jv.com> |
| Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/gadget/function/u_audio.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/drivers/usb/gadget/function/u_audio.c |
| +++ b/drivers/usb/gadget/function/u_audio.c |
| @@ -604,15 +604,15 @@ int g_audio_setup(struct g_audio *g_audi |
| if (err < 0) |
| goto snd_fail; |
| |
| - strcpy(pcm->name, pcm_name); |
| + strlcpy(pcm->name, pcm_name, sizeof(pcm->name)); |
| pcm->private_data = uac; |
| uac->pcm = pcm; |
| |
| snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &uac_pcm_ops); |
| snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &uac_pcm_ops); |
| |
| - strcpy(card->driver, card_name); |
| - strcpy(card->shortname, card_name); |
| + strlcpy(card->driver, card_name, sizeof(card->driver)); |
| + strlcpy(card->shortname, card_name, sizeof(card->shortname)); |
| sprintf(card->longname, "%s %i", card_name, card->dev->id); |
| |
| snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_CONTINUOUS, |