diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index a95f26a3cfa7..95209ec006b3 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1781,9 +1781,11 @@ const struct snd_kcontrol_new *snd_usb_feature_unit_ctl = &usb_feature_unit_ctl; /* * build a feature control */ -static size_t append_ctl_name(struct snd_kcontrol *kctl, const char *str) +static void append_ctl_name(struct snd_kcontrol *kctl, const char *str) { - return strlcat(kctl->id.name, str, sizeof(kctl->id.name)); + size_t len = strlen(kctl->id.name); + + strscpy(kctl->id.name + len, str, sizeof(kctl->id.name) - len); } /* @@ -2151,7 +2153,7 @@ static void build_connector_control(struct usb_mixer_interface *mixer, } if (check_mapped_name(map, kctl->id.name, sizeof(kctl->id.name))) - strlcat(kctl->id.name, " Jack", sizeof(kctl->id.name)); + append_ctl_name(kctl, " Jack"); else get_connector_control_name(mixer, term, is_input, kctl->id.name, sizeof(kctl->id.name));