fixed dmix crashes by Clemens Ladisch <clemens@ladisch.de>:

pcm->name can be NULL (when an unnamed pcm node is embedded in another
  pcm)
This commit is contained in:
Takashi Iwai 2003-08-07 14:20:32 +00:00
parent 7058054471
commit 18927bfe9a
4 changed files with 20 additions and 12 deletions

View file

@ -414,9 +414,11 @@ static int snd_pcm_dmix_info(snd_pcm_t *pcm, snd_pcm_info_t * info)
info->stream = pcm->stream;
info->card = -1;
/* FIXME: fill this with something more useful: we know the hardware name */
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
if (pcm->name) {
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
}
info->subdevices_count = 1;
return 0;
}

View file

@ -201,9 +201,11 @@ static int snd_pcm_dshare_info(snd_pcm_t *pcm, snd_pcm_info_t * info)
info->stream = pcm->stream;
info->card = -1;
/* FIXME: fill this with something more useful: we know the hardware name */
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
if (pcm->name) {
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
}
info->subdevices_count = 1;
return 0;
}

View file

@ -184,9 +184,11 @@ static int snd_pcm_dsnoop_info(snd_pcm_t *pcm, snd_pcm_info_t * info)
info->stream = pcm->stream;
info->card = -1;
/* FIXME: fill this with something more useful: we know the hardware name */
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
if (pcm->name) {
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
}
info->subdevices_count = 1;
return 0;
}

View file

@ -70,9 +70,11 @@ static int snd_pcm_null_info(snd_pcm_t *pcm, snd_pcm_info_t * info)
memset(info, 0, sizeof(*info));
info->stream = pcm->stream;
info->card = -1;
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
if (pcm->name) {
strncpy(info->id, pcm->name, sizeof(info->id));
strncpy(info->name, pcm->name, sizeof(info->name));
strncpy(info->subname, pcm->name, sizeof(info->subname));
}
info->subdevices_count = 1;
return 0;
}