Skip to content
  • Arnd Bergmann's avatar
    ALSA: ad1848: fix format string overflow warning · 003d3e70
    Arnd Bergmann authored
    
    
    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: default avatarArnd Bergmann <arnd@arndb.de>
    Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
    003d3e70