ALSA: cs423x: fix format string overflow warning
[sfrench/cifs-2.6.git] / sound / isa / cs423x / cs4236.c
index 1f9a3b2be7a1f705e40e15e8358a46b93e50a0f9..4c09756c73530bc2cfdc91a16cdc79ef9e7ac1b2 100644 (file)
@@ -419,15 +419,17 @@ static int snd_cs423x_probe(struct snd_card *card, int dev)
                if (err < 0)
                        return err;
        }
-       strcpy(card->driver, chip->pcm->name);
-       strcpy(card->shortname, chip->pcm->name);
-       sprintf(card->longname, "%s at 0x%lx, irq %i, dma %i",
-               chip->pcm->name,
-               chip->port,
-               irq[dev],
-               dma1[dev]);
-       if (dma2[dev] >= 0)
-               sprintf(card->longname + strlen(card->longname), "&%d", dma2[dev]);
+       strlcpy(card->driver, chip->pcm->name, sizeof(card->driver));
+       strlcpy(card->shortname, chip->pcm->name, sizeof(card->shortname));
+       if (dma2[dev] < 0)
+               snprintf(card->longname, sizeof(card->longname),
+                        "%s at 0x%lx, irq %i, dma %i",
+                        chip->pcm->name, chip->port, irq[dev], dma1[dev]);
+       else
+               snprintf(card->longname, sizeof(card->longname),
+                        "%s at 0x%lx, irq %i, dma %i&%d",
+                        chip->pcm->name, chip->port, irq[dev], dma1[dev],
+                        dma2[dev]);
 
        err = snd_wss_timer(chip, 0);
        if (err < 0)