ALSA: ad1848: fix format string overflow warning
authorArnd Bergmann <arnd@arndb.de>
Tue, 18 Jul 2017 11:48:06 +0000 (13:48 +0200)
committerTakashi Iwai <tiwai@suse.de>
Tue, 18 Jul 2017 15:52:24 +0000 (17:52 +0200)
commit003d3e70dbebe9d99387f2eeda405b1950b808f2
tree2fa3ec340fbb4a2f5e49a37bca28ac2fe097581c
parent6d8b04de87e1d736dad0ce7079e0ea112ab160c3
ALSA: ad1848: fix format string overflow warning

The snd_pcm name is too long to fit into the card shortname
or a part of the longname:

sound/isa/ad1848/ad1848.c: In function 'snd_ad1848_probe':
sound/isa/ad1848/ad1848.c:116:26: error: ' at 0x' directive writing 6 bytes into a region of size between 1 and 80 [-Werror=format-overflow=]
  sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d",
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sound/isa/ad1848/ad1848.c:116:2: note: 'sprintf' output between 22 and 128 bytes into a destination of size 80
  sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d",
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   chip->pcm->name, chip->port, irq[n], dma1[n]);
   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This changes the code to use length-checking functions that truncate
if necessary. The "[Thinkpad]" substring is now also part of the
snprintf(), as that could also overflow the buffer.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/isa/ad1848/ad1848.c