ALSA: ad1848: fix format string overflow warning
[sfrench/cifs-2.6.git] / sound / isa / ad1848 / ad1848.c
index e739b1c85c25b98c43127d1afc6270195974296b..7c8e92f62f3b925b6ac2f377e562f060e7f8362b 100644 (file)
@@ -110,13 +110,17 @@ static int snd_ad1848_probe(struct device *dev, unsigned int n)
        if (error < 0)
                goto out;
 
-       strcpy(card->driver, "AD1848");
-       strcpy(card->shortname, chip->pcm->name);
-
-       sprintf(card->longname, "%s at 0x%lx, irq %d, dma %d",
-               chip->pcm->name, chip->port, irq[n], dma1[n]);
-       if (thinkpad[n])
-               strcat(card->longname, " [Thinkpad]");
+       strlcpy(card->driver, "AD1848", sizeof(card->driver));
+       strlcpy(card->shortname, chip->pcm->name, sizeof(card->shortname));
+
+       if (!thinkpad[n])
+               snprintf(card->longname, sizeof(card->longname),
+                        "%s at 0x%lx, irq %d, dma %d",
+                        chip->pcm->name, chip->port, irq[n], dma1[n]);
+       else
+               snprintf(card->longname, sizeof(card->longname),
+                        "%s at 0x%lx, irq %d, dma %d [Thinkpad]",
+                        chip->pcm->name, chip->port, irq[n], dma1[n]);
 
        error = snd_card_register(card);
        if (error < 0)