diff options
Diffstat (limited to 'src/audio_out/audio_oss_out.c')
-rw-r--r-- | src/audio_out/audio_oss_out.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/audio_out/audio_oss_out.c b/src/audio_out/audio_oss_out.c index 5576b1d5f..5b4faada5 100644 --- a/src/audio_out/audio_oss_out.c +++ b/src/audio_out/audio_oss_out.c @@ -1035,20 +1035,14 @@ static ao_driver_t *open_plugin (audio_driver_class_t *class_gen, const void *da if ((parse = strstr(mixer_name, "dsp"))) { parse[0] = '\0'; parse += 3; - this->mixer.name = (char *)malloc(strlen(mixer_name) + sizeof("mixer") + 2); if (devname_val == 0) - sprintf(this->mixer.name, "%smixer%s", mixer_name, parse); - else { - if (mixer_num == -1) - sprintf(this->mixer.name, "%smixer", mixer_name); - else - sprintf(this->mixer.name, "%smixer%d", mixer_name, mixer_num); - } - } else { - this->mixer.name = (char *)malloc(1); - this->mixer.name[0] = '\0'; + asprintf(&this->mixer.name, "%smixer%s", mixer_name, parse); + else if (mixer_num == -1) + asprintf(&this->mixer.name, "%smixer", mixer_name); + else + asprintf(&this->mixer.name, "%smixer%d", mixer_name, mixer_num); } - _x_assert(this->mixer.name[0] != '\0'); + _x_assert(this->mixer.name); this->mixer.fd = open(this->mixer.name, O_RDONLY); |