kctl.id.device = ncontrol->device;
kctl.id.subdevice = ncontrol->subdevice;
if (ncontrol->name)
- strncpy(kctl.id.name, ncontrol->name, sizeof(kctl.id.name)-1);
+ strlcpy(kctl.id.name, ncontrol->name, sizeof(kctl.id.name));
kctl.id.index = ncontrol->index;
kctl.count = ncontrol->count ? ncontrol->count : 1;
access = ncontrol->access == 0 ? SNDRV_CTL_ELEM_ACCESS_READWRITE :
memset(&info, 0, sizeof(info));
down_read(&snd_ioctl_rwsem);
info.card = card->number;
- strncpy(info.id, card->id, sizeof(info.id) - 1);
- strncpy(info.driver, card->driver, sizeof(info.driver) - 1);
- strncpy(info.name, card->shortname, sizeof(info.name) - 1);
- strncpy(info.longname, card->longname, sizeof(info.longname) - 1);
- strncpy(info.mixername, card->mixername, sizeof(info.mixername) - 1);
- strncpy(info.components, card->components, sizeof(info.components) - 1);
+ strlcpy(info.id, card->id, sizeof(info.id));
+ strlcpy(info.driver, card->driver, sizeof(info.driver));
+ strlcpy(info.name, card->shortname, sizeof(info.name));
+ strlcpy(info.longname, card->longname, sizeof(info.longname));
+ strlcpy(info.mixername, card->mixername, sizeof(info.mixername));
+ strlcpy(info.components, card->components, sizeof(info.components));
up_read(&snd_ioctl_rwsem);
if (copy_to_user((void *) arg, &info, sizeof(snd_ctl_card_info_t)))
return -EFAULT;
memset(&info, 0, sizeof(info));
info.card = hw->card->number;
- strncpy(info.id, hw->id, sizeof(info.id) - 1);
- strncpy(info.name, hw->name, sizeof(info.name) - 1);
+ strlcpy(info.id, hw->id, sizeof(info.id));
+ strlcpy(info.name, hw->name, sizeof(info.name));
info.iface = hw->iface;
if (copy_to_user(_info, &info, sizeof(info)))
return -EFAULT;
hwdep->card = card;
hwdep->device = device;
if (id) {
- strncpy(hwdep->id, id, sizeof(hwdep->id) - 1);
+ strlcpy(hwdep->id, id, sizeof(hwdep->id));
}
#ifdef CONFIG_SND_OSSEMUL
hwdep->oss_type = -1;
if (xid) {
if (!snd_info_check_reserved_words(xid))
goto __error;
- strncpy(card->id, xid, sizeof(card->id) - 1);
+ strlcpy(card->id, xid, sizeof(card->id));
}
write_lock(&snd_card_rwlock);
if (idx < 0) {
struct mixer_info info;
memset(&info, 0, sizeof(info));
- strncpy(info.id, mixer && mixer->id[0] ? mixer->id : card->driver, sizeof(info.id) - 1);
- strncpy(info.name, mixer && mixer->name[0] ? mixer->name : card->mixername, sizeof(info.name) - 1);
+ strlcpy(info.id, mixer && mixer->id[0] ? mixer->id : card->driver, sizeof(info.id));
+ strlcpy(info.name, mixer && mixer->name[0] ? mixer->name : card->mixername, sizeof(info.name));
info.modify_counter = card->mixer_oss_change_count;
if (copy_to_user(_info, &info, sizeof(info)))
return -EFAULT;
_old_mixer_info info;
memset(&info, 0, sizeof(info));
- strncpy(info.id, mixer && mixer->id[0] ? mixer->id : card->driver, sizeof(info.id) - 1);
- strncpy(info.name, mixer && mixer->name[0] ? mixer->name : card->mixername, sizeof(info.name) - 1);
+ strlcpy(info.id, mixer && mixer->id[0] ? mixer->id : card->driver, sizeof(info.id));
+ strlcpy(info.name, mixer && mixer->name[0] ? mixer->name : card->mixername, sizeof(info.name));
if (copy_to_user(_info, &info, sizeof(info)))
return -EFAULT;
return 0;
}
mixer->oss_dev_alloc = 1;
mixer->card = card;
- if (*card->mixername) {
- strncpy(mixer->name, card->mixername, sizeof(mixer->name) - 1);
- mixer->name[sizeof(mixer->name)-1] = 0;
- } else
- strcpy(mixer->name, name);
+ if (*card->mixername)
+ strlcpy(mixer->name, card->mixername, sizeof(mixer->name));
+ else
+ strlcpy(mixer->name, name, sizeof(mixer->name));
#ifdef SNDRV_OSS_INFO_DEV_MIXERS
snd_oss_info_register(SNDRV_OSS_INFO_DEV_MIXERS,
card->number,
pcm->card = card;
pcm->device = device;
if (id) {
- strncpy(pcm->id, id, sizeof(pcm->id) - 1);
+ strlcpy(pcm->id, id, sizeof(pcm->id));
}
if ((err = snd_pcm_new_stream(pcm, SNDRV_PCM_STREAM_PLAYBACK, playback_count)) < 0) {
snd_pcm_free(pcm);
info->device = pcm->device;
info->stream = substream->stream;
info->subdevice = substream->number;
- strncpy(info->id, pcm->id, sizeof(info->id)-1);
- strncpy(info->name, pcm->name, sizeof(info->name)-1);
+ strlcpy(info->id, pcm->id, sizeof(info->id));
+ strlcpy(info->name, pcm->name, sizeof(info->name));
info->dev_class = pcm->dev_class;
info->dev_subclass = pcm->dev_subclass;
info->subdevices_count = pstr->substream_count;
info->subdevices_avail = pstr->substream_count - pstr->substream_opened;
- strncpy(info->subname, substream->name, sizeof(info->subname)-1);
+ strlcpy(info->subname, substream->name, sizeof(info->subname));
runtime = substream->runtime;
/* AB: FIXME!!! This is definitely nonsense */
if (runtime) {
init_MUTEX(&rmidi->open_mutex);
init_waitqueue_head(&rmidi->open_wait);
if (id != NULL)
- strncpy(rmidi->id, id, sizeof(rmidi->id) - 1);
+ strlcpy(rmidi->id, id, sizeof(rmidi->id));
if ((err = snd_rawmidi_alloc_substreams(rmidi, &rmidi->streams[SNDRV_RAWMIDI_STREAM_INPUT], SNDRV_RAWMIDI_STREAM_INPUT, input_count)) < 0) {
snd_rawmidi_free(rmidi);
return err;
snd_use_lock_init(&mdev->use_lock);
/* copy and truncate the name of synth device */
- strncpy(mdev->name, pinfo->name, sizeof(mdev->name));
- mdev->name[sizeof(mdev->name) - 1] = 0;
+ strlcpy(mdev->name, pinfo->name, sizeof(mdev->name));
/* create MIDI coder */
if (snd_midi_event_new(MAX_MIDI_EVENT_BUF, &mdev->coder) < 0) {
inf->device = dev;
inf->dev_type = 0; /* FIXME: ?? */
inf->capabilities = 0; /* FIXME: ?? */
- strncpy(inf->name, mdev->name, sizeof(inf->name));
+ strlcpy(inf->name, mdev->name, sizeof(inf->name));
snd_use_lock_free(&mdev->use_lock);
return 0;
}
snd_use_lock_init(&rec->use_lock);
/* copy and truncate the name of synth device */
- strncpy(rec->name, dev->name, sizeof(rec->name));
- rec->name[sizeof(rec->name)-1] = 0;
+ strlcpy(rec->name, dev->name, sizeof(rec->name));
/* registration */
spin_lock_irqsave(®ister_lock, flags);
inf->synth_subtype = 0;
inf->nr_voices = 16;
inf->device = dev;
- strncpy(inf->name, minf.name, sizeof(inf->name));
+ strlcpy(inf->name, minf.name, sizeof(inf->name));
} else {
if ((rec = get_synthdev(dp, dev)) == NULL)
return -ENXIO;
inf->synth_subtype = rec->synth_subtype;
inf->nr_voices = rec->nr_voices;
inf->device = dev;
- strncpy(inf->name, rec->name, sizeof(inf->name));
+ strlcpy(inf->name, rec->name, sizeof(inf->name));
snd_use_lock_free(&rec->use_lock);
}
return 0;
return -EINVAL;
/* fill the info fields */
- if (client_info.name[0]) {
- strncpy(client->name, client_info.name, sizeof(client->name)-1);
- client->name[sizeof(client->name)-1] = '\0';
- }
+ if (client_info.name[0])
+ strlcpy(client->name, client_info.name, sizeof(client->name));
+
client->filter = client_info.filter;
client->event_lost = client_info.event_lost;
memcpy(client->event_filter, client_info.event_filter, 32);
/* set queue name */
if (! info.name[0])
- sprintf(info.name, "Queue-%d", q->queue);
- strncpy(q->name, info.name, sizeof(q->name)-1);
- q->name[sizeof(q->name)-1] = 0;
+ snprintf(info.name, sizeof(info.name), "Queue-%d", q->queue);
+ strlcpy(q->name, info.name, sizeof(q->name));
queuefree(q);
if (copy_to_user(arg, &info, sizeof(info)))
info.queue = q->queue;
info.owner = q->owner;
info.locked = q->locked;
- strncpy(info.name, q->name, sizeof(info.name) - 1);
- info.name[sizeof(info.name)-1] = 0;
+ strlcpy(info.name, q->name, sizeof(info.name));
queuefree(q);
if (copy_to_user(arg, &info, sizeof(info)))
queuefree(q);
return -EPERM;
}
- strncpy(q->name, info.name, sizeof(q->name) - 1);
- q->name[sizeof(q->name)-1] = 0;
+ strlcpy(q->name, info.name, sizeof(q->name));
queuefree(q);
return 0;
/* set up device info */
dev->card = card;
dev->device = device;
- strncpy(dev->id, id, sizeof(dev->id) - 1);
- dev->id[sizeof(dev->id) - 1] = 0;
+ strlcpy(dev->id, id, sizeof(dev->id));
dev->argsize = argsize;
dev->status = SNDRV_SEQ_DEVICE_FREE;
memset(ops, 0, sizeof(*ops));
/* set up driver entry */
- strncpy(ops->id, id, sizeof(ops->id) - 1);
- ops->id[sizeof(ops->id) - 1] = 0;
+ strlcpy(ops->id, id, sizeof(ops->id));
init_MUTEX(&ops->reg_mutex);
ops->driver = DRIVER_EMPTY;
INIT_LIST_HEAD(&ops->dev_list);
}
instr->ops = ops;
instr->instr = put.id.instr;
- strncpy(instr->name, put.data.name, sizeof(instr->name)-1);
- instr->name[sizeof(instr->name)-1] = '\0';
+ strlcpy(instr->name, put.data.name, sizeof(instr->name));
instr->type = put.data.type;
if (instr->type == SNDRV_SEQ_INSTR_ATYPE_DATA) {
result = ops->put(ops->private_data,
snd_assert(port && info, return -EINVAL);
/* set port name */
- if (info->name[0]) {
- strncpy(port->name, info->name, sizeof(port->name)-1);
- port->name[sizeof(port->name)-1] = '\0';
- }
+ if (info->name[0])
+ strlcpy(port->name, info->name, sizeof(port->name));
/* set capabilities */
port->capability = info->capability;
snd_assert(port && info, return -EINVAL);
/* get port name */
- strncpy(info->name, port->name, sizeof(info->name));
+ strlcpy(info->name, port->name, sizeof(info->name));
/* get capabilities */
info->capability = port->capability;
/* Set up the port */
memset(&portinfo, 0, sizeof(portinfo));
portinfo.addr.client = client;
- if (portname)
- strncpy(portinfo.name, portname, sizeof(portinfo.name));
- else
- sprintf(portinfo.name, "Unamed port");
+ strlcpy(portinfo.name, portname ? portname : "Unamed port",
+ sizeof(portinfo.name));
portinfo.capability = cap;
portinfo.type = type;
timer->tmr_device = tid->device;
timer->tmr_subdevice = tid->subdevice;
if (id)
- strncpy(timer->id, id, sizeof(timer->id) - 1);
+ strlcpy(timer->id, id, sizeof(timer->id));
INIT_LIST_HEAD(&timer->device_list);
INIT_LIST_HEAD(&timer->open_list_head);
INIT_LIST_HEAD(&timer->active_list_head);
ginfo.card = t->card ? t->card->number : -1;
if (t->hw.flags & SNDRV_TIMER_HW_SLAVE)
ginfo.flags |= SNDRV_TIMER_FLG_SLAVE;
- strncpy(ginfo.id, t->id, sizeof(ginfo.id)-1);
- strncpy(ginfo.name, t->name, sizeof(ginfo.name)-1);
+ strlcpy(ginfo.id, t->id, sizeof(ginfo.id));
+ strlcpy(ginfo.name, t->name, sizeof(ginfo.name));
ginfo.resolution = t->hw.resolution;
if (t->hw.resolution_min > 0) {
ginfo.resolution_min = t->hw.resolution_min;
info.card = t->card ? t->card->number : -1;
if (t->hw.flags & SNDRV_TIMER_HW_SLAVE)
info.flags |= SNDRV_TIMER_FLG_SLAVE;
- strncpy(info.id, t->id, sizeof(info.id)-1);
- strncpy(info.name, t->name, sizeof(info.name)-1);
+ strlcpy(info.id, t->id, sizeof(info.id));
+ strlcpy(info.name, t->name, sizeof(info.name));
info.resolution = t->hw.resolution;
if (copy_to_user(_info, &info, sizeof(*_info)))
return -EFAULT;
return;
opl3->oss_seq_dev = dev;
- strncpy(dev->name, name, sizeof(dev->name) - 1);
- dev->name[sizeof(dev->name) - 1] = 0;
+ strlcpy(dev->name, name, sizeof(dev->name));
arg = SNDRV_SEQ_DEVICE_ARGPTR(dev);
arg->type = SYNTH_TYPE_FM;
if (opl3->hardware < OPL3_HW_OPL3) {
list_add_tail(&bus->buses, &master->buses);
bus->master = master;
}
- strncpy(bus->name, name, sizeof(bus->name) - 1);
+ strlcpy(bus->name, name, sizeof(bus->name));
if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, bus, &ops)) < 0) {
snd_i2c_bus_free(bus);
return err;
if (device == NULL)
return -ENOMEM;
device->addr = addr;
- strncpy(device->name, name, sizeof(device->name)-1);
+ strlcpy(device->name, name, sizeof(device->name));
list_add_tail(&device->list, &bus->devices);
device->bus = bus;
*rdevice = device;
ctl = snd_ctl_new1(&newctls[type], chip);
if (! ctl)
return -ENOMEM;
- strncpy(ctl->id.name, name, sizeof(ctl->id.name)-1);
+ strlcpy(ctl->id.name, name, sizeof(ctl->id.name));
ctl->id.index = index;
ctl->private_value = value;
if ((err = snd_ctl_add(chip->card, ctl)) < 0) {
return err;
/* fill in codec header */
- strncpy(p->codec_name, info.codec_name, sizeof(p->codec_name) - 1);
- p->codec_name[sizeof(p->codec_name) - 1] = 0;
+ strlcpy(p->codec_name, info.codec_name, sizeof(p->codec_name));
p->func_nr = func_nr;
p->mode = LE_SHORT(funcdesc_h.flags_play_rec);
switch (LE_SHORT(funcdesc_h.VOC_type)) {
ctl = snd_ctl_new1(&newctls[type], chip);
if (! ctl)
return -ENOMEM;
- strncpy(ctl->id.name, name, sizeof(ctl->id.name)-1);
+ strlcpy(ctl->id.name, name, sizeof(ctl->id.name));
ctl->id.index = index;
ctl->private_value = value;
if ((err = snd_ctl_add(chip->card, ctl)) < 0) {
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, codec->name, sizeof(info.id));
- strncpy(info.name, codec->name, sizeof(info.name));
+ strlcpy(info.id, codec->name, sizeof(info.id));
+ strlcpy(info.name, codec->name, sizeof(info.name));
info.modify_counter = codec->modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, codec->name, sizeof(info.id));
- strncpy(info.name, codec->name, sizeof(info.name));
+ strlcpy(info.id, codec->name, sizeof(info.id));
+ strlcpy(info.name, codec->name, sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
memset(&info,0,sizeof(info));
- strncpy(info.id,"bt878",sizeof(info.id)-1);
- strncpy(info.name,"Brooktree Bt878 audio",sizeof(info.name)-1);
+ strlcpy(info.id,"bt878",sizeof(info.id));
+ strlcpy(info.name,"Brooktree Bt878 audio",sizeof(info.name));
info.modify_counter = bta->mixcount;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
memset(&info,0,sizeof(info));
- strncpy(info.id,"bt878",sizeof(info.id)-1);
- strncpy(info.name,"Brooktree Bt878 audio",sizeof(info.name)-1);
+ strlcpy(info.id,"bt878",sizeof(info.id)-1);
+ strlcpy(info.name,"Brooktree Bt878 audio",sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
VALIDATE_STATE(s);
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, "cmpci", sizeof(info.id));
- strncpy(info.name, "C-Media PCI", sizeof(info.name));
+ strlcpy(info.id, "cmpci", sizeof(info.id));
+ strlcpy(info.name, "C-Media PCI", sizeof(info.name));
info.modify_counter = s->mix.modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, "cmpci", sizeof(info.id));
- strncpy(info.name, "C-Media cmpci", sizeof(info.name));
+ strlcpy(info.id, "cmpci", sizeof(info.id));
+ strlcpy(info.name, "C-Media cmpci", sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
}
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, "CS4281", sizeof(info.id));
- strncpy(info.name, "Crystal CS4281", sizeof(info.name));
+ strlcpy(info.id, "CS4281", sizeof(info.id));
+ strlcpy(info.name, "Crystal CS4281", sizeof(info.name));
info.modify_counter = s->mix.modcnt;
if (copy_to_user((void *) arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, "CS4281", sizeof(info.id));
- strncpy(info.name, "Crystal CS4281", sizeof(info.name));
+ strlcpy(info.id, "CS4281", sizeof(info.id));
+ strlcpy(info.name, "Crystal CS4281", sizeof(info.name));
if (copy_to_user((void *) arg, &info, sizeof(info)))
return -EFAULT;
return 0;
{
struct audio_driver *d;
struct audio_operations *op;
- int l, num;
+ int num;
if (vers != AUDIO_DRIVER_VERSION || driver_size > sizeof(struct audio_driver)) {
printk(KERN_ERR "Sound: Incompatible audio driver for %s\n", name);
memcpy((char *) d, (char *) driver, driver_size);
op->d = d;
- l = strlen(name) + 1;
- if (l > sizeof(op->name))
- l = sizeof(op->name);
- strncpy(op->name, name, l);
- op->name[l - 1] = 0;
+ strlcpy(op->name, name, sizeof(op->name));
op->flags = flags;
op->format_mask = format_mask;
op->devc = devc;
int driver_size, void *devc)
{
struct mixer_operations *op;
- int l;
int n = sound_alloc_mixerdev();
memset((char *) op, 0, sizeof(struct mixer_operations));
memcpy((char *) op, (char *) driver, driver_size);
- l = strlen(name) + 1;
- if (l > sizeof(op->name))
- l = sizeof(op->name);
- strncpy(op->name, name, l);
- op->name[l - 1] = 0;
+ strlcpy(op->name, name, sizeof(op->name));
op->devc = devc;
mixer_devs[n] = op;
case SOUND_MIXER_INFO:
{
mixer_info info;
- strncpy(info.id, dmasound.mach.name2, sizeof(info.id));
- strncpy(info.name, dmasound.mach.name2, sizeof(info.name));
- info.name[sizeof(info.name)-1] = 0;
+ strlcpy(info.id, dmasound.mach.name2, sizeof(info.id));
+ strlcpy(info.name, dmasound.mach.name2, sizeof(info.name));
info.modify_counter = mixer.modify_counter;
if (copy_to_user((int *)arg, &info, sizeof(info)))
return -EFAULT;
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, card->ac97.name, sizeof(info.id));
- strncpy(info.name, "Creative SBLive - Emu10k1", sizeof(info.name));
+ strlcpy(info.id, card->ac97.name, sizeof(info.id));
+ strlcpy(info.name, "Creative SBLive - Emu10k1", sizeof(info.name));
info.modify_counter = card->ac97.modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
}
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, "ES1370", sizeof(info.id));
- strncpy(info.name, "Ensoniq ES1370", sizeof(info.name));
+ strlcpy(info.id, "ES1370", sizeof(info.id));
+ strlcpy(info.name, "Ensoniq ES1370", sizeof(info.name));
info.modify_counter = s->mix.modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, "ES1370", sizeof(info.id));
- strncpy(info.name, "Ensoniq ES1370", sizeof(info.name));
+ strlcpy(info.id, "ES1370", sizeof(info.id));
+ strlcpy(info.name, "Ensoniq ES1370", sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
}
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, "Solo1", sizeof(info.id));
- strncpy(info.name, "ESS Solo1", sizeof(info.name));
+ strlcpy(info.id, "Solo1", sizeof(info.id));
+ strlcpy(info.name, "ESS Solo1", sizeof(info.name));
info.modify_counter = s->mix.modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, "Solo1", sizeof(info.id));
- strncpy(info.name, "ESS Solo1", sizeof(info.name));
+ strlcpy(info.id, "Solo1", sizeof(info.id));
+ strlcpy(info.name, "ESS Solo1", sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
unsigned long flags;
unsigned char val;
char *model_num = "2.4";
- char tmp[64], tmp2[64];
+ char tmp[64];
int gus_type = 0x24; /* 2.4 */
int irq = hw_config->irq, dma = hw_config->dma, dma2 = hw_config->dma2;
}
if (hw_config->name)
- {
- strncpy(tmp, hw_config->name, 45);
- tmp[45] = 0;
- sprintf(tmp2, "%s (%dk)", tmp, (int) gus_mem_size / 1024);
- tmp2[sizeof(tmp2) - 1] = 0;
- }
+ snprintf(tmp, sizeof(tmp), "%s (%dk)", hw_config->name,
+ (int) gus_mem_size / 1024);
else if (gus_pnp_flag)
- {
- sprintf(tmp2, "Gravis UltraSound PnP (%dk)",
- (int) gus_mem_size / 1024);
- }
+ snprintf(tmp, sizeof(tmp), "Gravis UltraSound PnP (%dk)",
+ (int) gus_mem_size / 1024);
else
- sprintf(tmp2, "Gravis UltraSound %s (%dk)", model_num, (int) gus_mem_size / 1024);
+ snprintf(tmp, sizeof(tmp), "Gravis UltraSound %s (%dk)", model_num,
+ (int) gus_mem_size / 1024);
samples = (struct patch_info *)vmalloc((MAX_SAMPLE + 1) * sizeof(*samples));
printk(KERN_WARNING "gus_init: Cant allocate memory for instrument tables\n");
return;
}
- conf_printf(tmp2, hw_config);
- tmp2[sizeof(gus_info.name) - 1] = 0;
- strcpy(gus_info.name, tmp2);
+ conf_printf(tmp, hw_config);
+ strlcpy(gus_info.name, tmp, sizeof(gus_info.name));
if ((sdev = sound_alloc_synthdev()) == -1)
printk(KERN_WARNING "gus_init: Too many synthesizers\n");
VALIDATE_CARD(card);
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, card_names[card->card_type], sizeof(info.id));
- strncpy(info.name,card_names[card->card_type],sizeof(info.name));
+ strlcpy(info.id, card_names[card->card_type], sizeof(info.id));
+ strlcpy(info.name, card_names[card->card_type], sizeof(info.name));
info.modify_counter = card->mix.modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, card_names[card->card_type], sizeof(info.id));
- strncpy(info.name,card_names[card->card_type],sizeof(info.name));
+ strlcpy(info.id, card_names[card->card_type], sizeof(info.id));
+ strlcpy(info.name, card_names[card->card_type], sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
}
#define set_mixer_info() \
- strncpy(info.id, "MSNDMIXER", sizeof(info.id)); \
- strncpy(info.name, "MultiSound Mixer", sizeof(info.name));
+ strlcpy(info.id, "MSNDMIXER", sizeof(info.id)); \
+ strlcpy(info.name, "MultiSound Mixer", sizeof(info.name));
static int mixer_ioctl(unsigned int cmd, unsigned long arg)
{
if (!(synth_open_mask & (1 << dev)) && !orig_dev)
return -EBUSY;
memcpy(&inf, synth_devs[dev]->info, sizeof(inf));
- strncpy(inf.name, synth_devs[dev]->id, sizeof(inf.name));
+ strlcpy(inf.name, synth_devs[dev]->id, sizeof(inf.name));
inf.device = dev;
return copy_to_user(arg, &inf, sizeof(inf))?-EFAULT:0;
VALIDATE_STATE(s);
if (cmd == SOUND_MIXER_INFO) {
mixer_info info;
- strncpy(info.id, "SonicVibes", sizeof(info.id));
- strncpy(info.name, "S3 SonicVibes", sizeof(info.name));
+ strlcpy(info.id, "SonicVibes", sizeof(info.id));
+ strlcpy(info.name, "S3 SonicVibes", sizeof(info.name));
info.modify_counter = s->mix.modcnt;
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
}
if (cmd == SOUND_OLD_MIXER_INFO) {
_old_mixer_info info;
- strncpy(info.id, "SonicVibes", sizeof(info.id));
- strncpy(info.name, "S3 SonicVibes", sizeof(info.name));
+ strlcpy(info.id, "SonicVibes", sizeof(info.id));
+ strlcpy(info.name, "S3 SonicVibes", sizeof(info.name));
if (copy_to_user((void *)arg, &info, sizeof(info)))
return -EFAULT;
return 0;
{
mixer_info info;
- strncpy(info.id, mixer_devs[dev]->id, sizeof(info.id));
- strncpy(info.name, mixer_devs[dev]->name, sizeof(info.name));
- info.name[sizeof(info.name)-1] = 0;
+ strlcpy(info.id, mixer_devs[dev]->id, sizeof(info.id));
+ strlcpy(info.name, mixer_devs[dev]->name, sizeof(info.name));
info.modify_counter = mixer_devs[dev]->modify_counter;
if (__copy_to_user(arg, &info, sizeof(info)))
return -EFAULT;
{
_old_mixer_info info;
- strncpy(info.id, mixer_devs[dev]->id, sizeof(info.id));
- strncpy(info.name, mixer_devs[dev]->name, sizeof(info.name));
- info.name[sizeof(info.name)-1] = 0;
+ strlcpy(info.id, mixer_devs[dev]->id, sizeof(info.id));
+ strlcpy(info.name, mixer_devs[dev]->name, sizeof(info.name));
if (copy_to_user(arg, &info, sizeof(info)))
return -EFAULT;
return 0;
memset(&gctl, 0, sizeof(gctl));
id = &ctl->kcontrol->id;
gctl.id.iface = id->iface;
- strncpy(gctl.id.name, id->name, sizeof(gctl.id.name));
+ strlcpy(gctl.id.name, id->name, sizeof(gctl.id.name));
gctl.id.index = id->index;
gctl.id.device = id->device;
gctl.id.subdevice = id->subdevice;
down(&emu->fx8010.lock);
if ((err = snd_emu10k1_verify_controls(emu, icode)) < 0)
goto __error;
- strncpy(emu->fx8010.name, icode->name, sizeof(emu->fx8010.name)-1);
- emu->fx8010.name[sizeof(emu->fx8010.name)-1] = '\0';
+ strlcpy(emu->fx8010.name, icode->name, sizeof(emu->fx8010.name));
/* stop FX processor - this may be dangerous, but it's better to miss
some samples than generate wrong ones - [jk] */
if (emu->audigy)
int err;
down(&emu->fx8010.lock);
- strncpy(icode->name, emu->fx8010.name, sizeof(icode->name)-1);
- emu->fx8010.name[sizeof(emu->fx8010.name)-1] = '\0';
+ strlcpy(icode->name, emu->fx8010.name, sizeof(icode->name));
/* ok, do the main job */
snd_emu10k1_gpr_peek(emu, icode);
snd_emu10k1_tram_peek(emu, icode);
len = 0;
if (len <= 0) {
if (quirk && quirk->product_name) {
- strncpy(card->shortname, quirk->product_name, sizeof(card->shortname) - 1);
- card->shortname[sizeof(card->shortname) - 1] = '\0';
+ strlcpy(card->shortname, quirk->product_name, sizeof(card->shortname));
} else {
sprintf(card->shortname, "USB Device %#04x:%#04x",
dev->descriptor.idVendor, dev->descriptor.idProduct);
/* retrieve the vendor and device strings as longname */
if (dev->descriptor.iManufacturer)
len = usb_string(dev, dev->descriptor.iManufacturer,
- card->longname, sizeof(card->longname) - 1);
+ card->longname, sizeof(card->longname));
else
len = 0;
if (len <= 0) {
if (quirk && quirk->vendor_name) {
- strncpy(card->longname, quirk->vendor_name, sizeof(card->longname) - 2);
- card->longname[sizeof(card->longname) - 2] = '\0';
- len = strlen(card->longname);
+ len = strlcpy(card->longname, quirk->vendor_name, sizeof(card->longname));
} else {
len = 0;
}
}
- if (len > 0) {
- card->longname[len] = ' ';
- len++;
- }
- card->longname[len] = '\0';
+ if (len > 0)
+ strlcat(card->longname, ' ', sizeof(card->longname));
+
+ len = strlen(card->longname);
+
if ((!dev->descriptor.iProduct
|| usb_string(dev, dev->descriptor.iProduct,
card->longname + len, sizeof(card->longname) - len) <= 0)
&& quirk && quirk->product_name) {
- strncpy(card->longname + len, quirk->product_name, sizeof(card->longname) - len - 1);
- card->longname[sizeof(card->longname) - 1] = '\0';
+ strlcat(card->longname, quirk->product_name, sizeof(card->longname));
}
- /* add device path to longname */
- len = strlen(card->longname);
- if (sizeof(card->longname) - len > 10) {
- strcpy(card->longname + len, " at ");
- len += 4;
+
+ len = strlcat(card->longname, " at ", sizeof(card->longname));
+
+ if (len < sizeof(card->longname))
usb_make_path(dev, card->longname + len, sizeof(card->longname) - len);
- }
*rchip = chip;
return 0;
if (p->id == unitid &&
(! control || ! p->control || control == p->control)) {
buflen--;
- strncpy(buf, p->name, buflen);
- buf[buflen] = 0;
- return strlen(buf);
+ return strlcpy(buf, p->name, buflen);
}
}
return 0;
if (! len)
len = get_term_name(state, &state->oterm, kctl->id.name, sizeof(kctl->id.name), 1);
if (! len)
- len = sprintf(kctl->id.name, "Feature %d", unitid);
+ len = snprintf(kctl->id.name, sizeof(kctl->id.name),
+ "Feature %d", unitid);
}
/* determine the stream direction:
* if the connected output is USB stream, then it's likely a
*/
if (! mapped_name && ! (state->oterm.type >> 16)) {
if ((state->oterm.type & 0xff00) == 0x0100) {
- if (len + 8 < sizeof(kctl->id.name)) {
- strcpy(kctl->id.name + len, " Capture");
- len += 8;
- }
+ len = strlcat(kctl->id.name, " Capture", sizeof(kctl->id.name));
} else {
- if (len + 9 < sizeof(kctl->id.name)) {
- strcpy(kctl->id.name + len, " Playback");
- len += 9;
- }
+ len = strlcat(kctl->id.name + len, " Playback", sizeof(kctl->id.name));
}
}
- if (len + 7 < sizeof(kctl->id.name))
- strcpy(kctl->id.name + len, control == USB_FEATURE_MUTE ? " Switch" : " Volume");
+ strlcat(kctl->id.name + len, control == USB_FEATURE_MUTE ? " Switch" : " Volume",
+ sizeof(kctl->id.name));
break;
default:
if (! len)
- strcpy(kctl->id.name, audio_feature_info[control-1].name);
+ strlcpy(kctl->id.name, audio_feature_info[control-1].name,
+ sizeof(kctl->id.name));
break;
}
len = get_term_name(state, &iterm, kctl->id.name, sizeof(kctl->id.name), 0);
if (! len)
len = sprintf(kctl->id.name, "Mixer Source %d", in_ch);
- if (len + 7 < sizeof(kctl->id.name))
- strcpy(kctl->id.name + len, " Volume");
+ strlcat(kctl->id.name + len, " Volume", sizeof(kctl->id.name));
snd_printdd(KERN_INFO "[%d] MU [%s] ch = %d, val = %d/%d\n",
cval->id, kctl->id.name, cval->channels, cval->min, cval->max);
if (check_mapped_name(state, unitid, cval->control, kctl->id.name, sizeof(kctl->id.name)))
;
else if (info->name)
- strcpy(kctl->id.name, info->name);
+ strlcpy(kctl->id.name, info->name, sizeof(kctl->id.name));
else {
nameid = dsc[12 + num_ins + dsc[11 + num_ins]];
len = 0;
if (nameid)
len = snd_usb_copy_string_desc(state, nameid, kctl->id.name, sizeof(kctl->id.name));
- if (! len) {
- strncpy(kctl->id.name, name, sizeof(kctl->id.name) - 1);
- kctl->id.name[sizeof(kctl->id.name)-1] = 0;
- }
- }
- len = strlen(kctl->id.name);
- if (len + sizeof(valinfo->suffix) + 1 < sizeof(kctl->id.name)) {
- kctl->id.name[len] = ' ';
- strcpy(kctl->id.name + len + 1, valinfo->suffix);
+ if (! len)
+ strlcpy(kctl->id.name, name, sizeof(kctl->id.name));
}
+ strlcat(kctl->id.name, ' ', sizeof(kctl->id.name));
+ strlcat(kctl->id.name, valinfo->suffix, sizeof(kctl->id.name));
+
snd_printdd(KERN_INFO "[%d] PU [%s] ch = %d, val = %d/%d\n",
cval->id, kctl->id.name, cval->channels, cval->min, cval->max);
if ((err = add_control_to_empty(state->chip->card, kctl)) < 0)
len = get_term_name(state, &state->oterm,
kctl->id.name, sizeof(kctl->id.name), 0);
if (! len)
- len = sprintf(kctl->id.name, "USB");
- if ((state->oterm.type & 0xff00) == 0x0100) {
- if (len + 15 < sizeof(kctl->id.name))
- strcpy(kctl->id.name + len, " Capture Source");
- } else {
- if (len + 16 < sizeof(kctl->id.name))
- strcpy(kctl->id.name + len, " Playback Source");
- }
+ strlcpy(kctl->id.name, "USB", sizeof(kctl->id.name));
+
+ if ((state->oterm.type & 0xff00) == 0x0100)
+ strlcat(kctl->id.name, " Capture Source", sizeof(kctl->id.name));
+ else
+ strlcat(kctl->id.name, " Playback Source", sizeof(kctl->id.name));
}
snd_printdd(KERN_INFO "[%d] SU [%s] items = %d\n",