Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ALSA: gus: Use safer strscpy() instead of strcpy()

Use a safer function strscpy() instead of strcpy() for copying to
arrays.

Only idiomatic code replacement, and no functional changes.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/20250710100727.22653-32-tiwai@suse.de

+42 -42
+8 -8
sound/isa/gus/gus_main.c
··· 348 348 rev = inb(GUSP(gus, BOARDVERSION)); 349 349 spin_unlock_irqrestore(&gus->reg_lock, flags); 350 350 dev_dbg(card->dev, "GF1 [0x%lx] init - val = 0x%x, rev = 0x%x\n", gus->gf1.port, val, rev); 351 - strcpy(card->driver, "GUS"); 352 - strcpy(card->longname, "Gravis UltraSound Classic (2.4)"); 351 + strscpy(card->driver, "GUS"); 352 + strscpy(card->longname, "Gravis UltraSound Classic (2.4)"); 353 353 if ((val != 255 && (val & 0x06)) || (rev >= 5 && rev != 255)) { 354 354 if (rev >= 5 && rev <= 9) { 355 355 gus->ics_flag = 1; ··· 360 360 } 361 361 if (rev >= 10 && rev != 255) { 362 362 if (rev >= 10 && rev <= 11) { 363 - strcpy(card->driver, "GUS MAX"); 364 - strcpy(card->longname, "Gravis UltraSound MAX"); 363 + strscpy(card->driver, "GUS MAX"); 364 + strscpy(card->longname, "Gravis UltraSound MAX"); 365 365 gus->max_flag = 1; 366 366 } else if (rev == 0x30) { 367 - strcpy(card->driver, "GUS ACE"); 368 - strcpy(card->longname, "Gravis UltraSound Ace"); 367 + strscpy(card->driver, "GUS ACE"); 368 + strscpy(card->longname, "Gravis UltraSound Ace"); 369 369 gus->ace_flag = 1; 370 370 } else if (rev == 0x50) { 371 - strcpy(card->driver, "GUS Extreme"); 372 - strcpy(card->longname, "Gravis UltraSound Extreme"); 371 + strscpy(card->driver, "GUS Extreme"); 372 + strscpy(card->longname, "Gravis UltraSound Extreme"); 373 373 gus->ess_flag = 1; 374 374 } else { 375 375 dev_err(card->dev,
+1 -1
sound/isa/gus/gus_mixer.c
··· 152 152 if (gus->ics_flag) 153 153 snd_component_add(card, "ICS2101"); 154 154 if (card->mixername[0] == '\0') { 155 - strcpy(card->mixername, gus->ics_flag ? "GF1,ICS2101" : "GF1"); 155 + strscpy(card->mixername, gus->ics_flag ? "GF1,ICS2101" : "GF1"); 156 156 } else { 157 157 if (gus->ics_flag) 158 158 strcat(card->mixername, ",ICS2101");
+1 -1
sound/isa/gus/gus_pcm.c
··· 851 851 SNDRV_DMA_TYPE_DEV, card->dev, 852 852 64*1024, gus->gf1.dma2 > 3 ? 128*1024 : 64*1024); 853 853 } 854 - strcpy(pcm->name, pcm->id); 854 + strscpy(pcm->name, pcm->id); 855 855 if (gus->interwave) { 856 856 sprintf(pcm->name + strlen(pcm->name), " rev %c", gus->revision + 'A'); 857 857 }
+2 -2
sound/isa/gus/gus_timer.c
··· 156 156 tid.subdevice = 0; 157 157 158 158 if (snd_timer_new(gus->card, "GF1 timer", &tid, &timer) >= 0) { 159 - strcpy(timer->name, "GF1 timer #1"); 159 + strscpy(timer->name, "GF1 timer #1"); 160 160 timer->private_data = gus; 161 161 timer->private_free = snd_gf1_timer1_free; 162 162 timer->hw = snd_gf1_timer1; ··· 166 166 tid.device++; 167 167 168 168 if (snd_timer_new(gus->card, "GF1 timer", &tid, &timer) >= 0) { 169 - strcpy(timer->name, "GF1 timer #2"); 169 + strscpy(timer->name, "GF1 timer #2"); 170 170 timer->private_data = gus; 171 171 timer->private_free = snd_gf1_timer2_free; 172 172 timer->hw = snd_gf1_timer2;
+1 -1
sound/isa/gus/gus_uart.c
··· 236 236 err = snd_rawmidi_new(gus->card, "GF1", device, 1, 1, &rmidi); 237 237 if (err < 0) 238 238 return err; 239 - strcpy(rmidi->name, gus->interwave ? "AMD InterWave" : "GF1"); 239 + strscpy(rmidi->name, gus->interwave ? "AMD InterWave" : "GF1"); 240 240 snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_OUTPUT, &snd_gf1_uart_output); 241 241 snd_rawmidi_set_ops(rmidi, SNDRV_RAWMIDI_STREAM_INPUT, &snd_gf1_uart_input); 242 242 rmidi->info_flags |= SNDRV_RAWMIDI_INFO_OUTPUT | SNDRV_RAWMIDI_INFO_INPUT | SNDRV_RAWMIDI_INFO_DUPLEX;
+4 -4
sound/isa/gus/gusextreme.c
··· 204 204 id1.iface = id2.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 205 205 206 206 /* reassign AUX to SYNTHESIZER */ 207 - strcpy(id1.name, "Aux Playback Volume"); 208 - strcpy(id2.name, "Synth Playback Volume"); 207 + strscpy(id1.name, "Aux Playback Volume"); 208 + strscpy(id2.name, "Synth Playback Volume"); 209 209 error = snd_ctl_rename_id(card, &id1, &id2); 210 210 if (error < 0) 211 211 return error; 212 212 213 213 /* reassign Master Playback Switch to Synth Playback Switch */ 214 - strcpy(id1.name, "Master Playback Switch"); 215 - strcpy(id2.name, "Synth Playback Switch"); 214 + strscpy(id1.name, "Master Playback Switch"); 215 + strscpy(id2.name, "Synth Playback Switch"); 216 216 error = snd_ctl_rename_id(card, &id1, &id2); 217 217 if (error < 0) 218 218 return error;
+8 -8
sound/isa/gus/gusmax.c
··· 134 134 memset(&id2, 0, sizeof(id2)); 135 135 id1.iface = id2.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 136 136 /* reassign AUXA to SYNTHESIZER */ 137 - strcpy(id1.name, "Aux Playback Switch"); 138 - strcpy(id2.name, "Synth Playback Switch"); 137 + strscpy(id1.name, "Aux Playback Switch"); 138 + strscpy(id2.name, "Synth Playback Switch"); 139 139 err = snd_ctl_rename_id(card, &id1, &id2); 140 140 if (err < 0) 141 141 return err; 142 - strcpy(id1.name, "Aux Playback Volume"); 143 - strcpy(id2.name, "Synth Playback Volume"); 142 + strscpy(id1.name, "Aux Playback Volume"); 143 + strscpy(id2.name, "Synth Playback Volume"); 144 144 err = snd_ctl_rename_id(card, &id1, &id2); 145 145 if (err < 0) 146 146 return err; 147 147 /* reassign AUXB to CD */ 148 - strcpy(id1.name, "Aux Playback Switch"); id1.index = 1; 149 - strcpy(id2.name, "CD Playback Switch"); 148 + strscpy(id1.name, "Aux Playback Switch"); id1.index = 1; 149 + strscpy(id2.name, "CD Playback Switch"); 150 150 err = snd_ctl_rename_id(card, &id1, &id2); 151 151 if (err < 0) 152 152 return err; 153 - strcpy(id1.name, "Aux Playback Volume"); 154 - strcpy(id2.name, "CD Playback Volume"); 153 + strscpy(id1.name, "Aux Playback Volume"); 154 + strscpy(id2.name, "CD Playback Volume"); 155 155 err = snd_ctl_rename_id(card, &id1, &id2); 156 156 if (err < 0) 157 157 return err;
+17 -17
sound/isa/gus/interwave.c
··· 271 271 dev_dbg(gus->card->dev, 272 272 "[0x%lx] InterWave check - passed\n", gus->gf1.port); 273 273 gus->interwave = 1; 274 - strcpy(gus->card->shortname, "AMD InterWave"); 274 + strscpy(gus->card->shortname, "AMD InterWave"); 275 275 gus->revision = rev1 >> 4; 276 276 #ifndef SNDRV_STB 277 277 return 0; /* ok.. We have an InterWave board */ ··· 500 500 id1.iface = id2.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 501 501 #if 0 502 502 /* remove mono microphone controls */ 503 - strcpy(id1.name, "Mic Playback Switch"); 503 + strscpy(id1.name, "Mic Playback Switch"); 504 504 err = snd_ctl_remove_id(card, &id1); 505 505 if (err < 0) 506 506 return err; 507 - strcpy(id1.name, "Mic Playback Volume"); 507 + strscpy(id1.name, "Mic Playback Volume"); 508 508 err = snd_ctl_remove_id(card, &id1); 509 509 if (err < 0) 510 510 return err; ··· 520 520 snd_wss_out(chip, CS4231_LEFT_MIC_INPUT, 0x9f); 521 521 snd_wss_out(chip, CS4231_RIGHT_MIC_INPUT, 0x9f); 522 522 /* reassign AUXA to SYNTHESIZER */ 523 - strcpy(id1.name, "Aux Playback Switch"); 524 - strcpy(id2.name, "Synth Playback Switch"); 523 + strscpy(id1.name, "Aux Playback Switch"); 524 + strscpy(id2.name, "Synth Playback Switch"); 525 525 err = snd_ctl_rename_id(card, &id1, &id2); 526 526 if (err < 0) 527 527 return err; 528 - strcpy(id1.name, "Aux Playback Volume"); 529 - strcpy(id2.name, "Synth Playback Volume"); 528 + strscpy(id1.name, "Aux Playback Volume"); 529 + strscpy(id2.name, "Synth Playback Volume"); 530 530 err = snd_ctl_rename_id(card, &id1, &id2); 531 531 if (err < 0) 532 532 return err; 533 533 /* reassign AUXB to CD */ 534 - strcpy(id1.name, "Aux Playback Switch"); id1.index = 1; 535 - strcpy(id2.name, "CD Playback Switch"); 534 + strscpy(id1.name, "Aux Playback Switch"); id1.index = 1; 535 + strscpy(id2.name, "CD Playback Switch"); 536 536 err = snd_ctl_rename_id(card, &id1, &id2); 537 537 if (err < 0) 538 538 return err; 539 - strcpy(id1.name, "Aux Playback Volume"); 540 - strcpy(id2.name, "CD Playback Volume"); 539 + strscpy(id1.name, "Aux Playback Volume"); 540 + strscpy(id2.name, "CD Playback Volume"); 541 541 err = snd_ctl_rename_id(card, &id1, &id2); 542 542 if (err < 0) 543 543 return err; ··· 713 713 memset(&id1, 0, sizeof(id1)); 714 714 memset(&id2, 0, sizeof(id2)); 715 715 id1.iface = id2.iface = SNDRV_CTL_ELEM_IFACE_MIXER; 716 - strcpy(id1.name, "Master Playback Switch"); 717 - strcpy(id2.name, id1.name); 716 + strscpy(id1.name, "Master Playback Switch"); 717 + strscpy(id2.name, id1.name); 718 718 id2.index = 1; 719 719 err = snd_ctl_rename_id(card, &id1, &id2); 720 720 if (err < 0) 721 721 return err; 722 - strcpy(id1.name, "Master Playback Volume"); 723 - strcpy(id2.name, id1.name); 722 + strscpy(id1.name, "Master Playback Volume"); 723 + strscpy(id2.name, id1.name); 724 724 err = snd_ctl_rename_id(card, &id1, &id2); 725 725 if (err < 0) 726 726 return err; ··· 742 742 #else 743 743 str = "InterWave STB"; 744 744 #endif 745 - strcpy(card->driver, str); 746 - strcpy(card->shortname, str); 745 + strscpy(card->driver, str); 746 + strscpy(card->shortname, str); 747 747 sprintf(card->longname, "%s at 0x%lx, irq %i, dma %d", 748 748 str, 749 749 gus->gf1.port,