mirror of https://gitee.com/openkylin/linux.git
ALSA: mixart: fix string overflow warning
Using a temporary string produces warnings about a possible overflow in sprintf: sound/pci/mixart/mixart.c: In function 'snd_mixart_probe': sound/pci/mixart/mixart.c:1353:28: error: ' [PCM #' directive writing 7 bytes into a region of size between 1 and 32 [-Werror=format-overflow=] sprintf(card->shortname, "%s [PCM #%d]", mgr->shortname, i); ^~~~~~~~~~~~~~ sound/pci/mixart/mixart.c:1353:28: note: using the range [-2147483648, 2147483647] for directive argument sound/pci/mixart/mixart.c:1353:3: note: 'sprintf' output between 10 and 51 bytes into a destination of size 32 sprintf(card->shortname, "%s [PCM #%d]", mgr->shortname, i); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ sound/pci/mixart/mixart.c:1354:27: error: ' [PCM #' directive writing 7 bytes into a region of size between 1 and 80 [-Werror=format-overflow=] sprintf(card->longname, "%s [PCM #%d]", mgr->longname, i); ^~~~~~~~~~~~~~ sound/pci/mixart/mixart.c:1354:27: note: using the range [-2147483648, 2147483647] for directive argument sound/pci/mixart/mixart.c:1354:3: note: 'sprintf' output between 10 and 99 bytes into a destination of size 80 Skipping the intermediate, we can get gcc to see that it is in fact safe here. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
24d2207731
commit
c6e486ffb2
|
@ -1313,9 +1313,6 @@ static int snd_mixart_probe(struct pci_dev *pci,
|
|||
}
|
||||
mgr->irq = pci->irq;
|
||||
|
||||
sprintf(mgr->shortname, "Digigram miXart");
|
||||
sprintf(mgr->longname, "%s at 0x%lx & 0x%lx, irq %i", mgr->shortname, mgr->mem[0].phys, mgr->mem[1].phys, mgr->irq);
|
||||
|
||||
/* init mailbox */
|
||||
mgr->msg_fifo_readptr = 0;
|
||||
mgr->msg_fifo_writeptr = 0;
|
||||
|
@ -1350,8 +1347,11 @@ static int snd_mixart_probe(struct pci_dev *pci,
|
|||
}
|
||||
|
||||
strcpy(card->driver, CARD_NAME);
|
||||
sprintf(card->shortname, "%s [PCM #%d]", mgr->shortname, i);
|
||||
sprintf(card->longname, "%s [PCM #%d]", mgr->longname, i);
|
||||
snprintf(card->shortname, sizeof(card->shortname),
|
||||
"Digigram miXart [PCM #%d]", i);
|
||||
snprintf(card->longname, sizeof(card->longname),
|
||||
"Digigram miXart at 0x%lx & 0x%lx, irq %i [PCM #%d]",
|
||||
mgr->mem[0].phys, mgr->mem[1].phys, mgr->irq, i);
|
||||
|
||||
if ((err = snd_mixart_create(mgr, card, i)) < 0) {
|
||||
snd_card_free(card);
|
||||
|
|
|
@ -74,10 +74,6 @@ struct mixart_mgr {
|
|||
/* memory-maps */
|
||||
struct mem_area mem[2];
|
||||
|
||||
/* share the name */
|
||||
char shortname[32]; /* short name of this soundcard */
|
||||
char longname[80]; /* name of this soundcard */
|
||||
|
||||
/* one and only blocking message or notification may be pending */
|
||||
u32 pending_event;
|
||||
wait_queue_head_t msg_sleep;
|
||||
|
|
Loading…
Reference in New Issue