Commit e8afdfdc authored by Takashi Iwai's avatar Takashi Iwai

ALSA: usb-audio: Convert remaining strlcpy() to strscpy()

USB-audio driver still contains two calls of strlcpy() because the
return size is evaluated.  Basically it just checks whether the string
is copied or not, but since strcpy() may return a negative error code,
we should check the negative value and treat as filled.

Link: https://lore.kernel.org/r/20210115095758.19707-1-tiwai@suse.deSigned-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 75b1a8f9
...@@ -115,11 +115,14 @@ find_map(const struct usbmix_name_map *p, int unitid, int control) ...@@ -115,11 +115,14 @@ find_map(const struct usbmix_name_map *p, int unitid, int control)
static int static int
check_mapped_name(const struct usbmix_name_map *p, char *buf, int buflen) check_mapped_name(const struct usbmix_name_map *p, char *buf, int buflen)
{ {
int len;
if (!p || !p->name) if (!p || !p->name)
return 0; return 0;
buflen--; buflen--;
return strlcpy(buf, p->name, buflen); len = strscpy(buf, p->name, buflen);
return len < 0 ? buflen : len;
} }
/* ignore the error value if ignore_ctl_error flag is set */ /* ignore the error value if ignore_ctl_error flag is set */
...@@ -151,12 +154,15 @@ static int check_mapped_selector_name(struct mixer_build *state, int unitid, ...@@ -151,12 +154,15 @@ static int check_mapped_selector_name(struct mixer_build *state, int unitid,
int index, char *buf, int buflen) int index, char *buf, int buflen)
{ {
const struct usbmix_selector_map *p; const struct usbmix_selector_map *p;
int len;
if (!state->selector_map) if (!state->selector_map)
return 0; return 0;
for (p = state->selector_map; p->id; p++) { for (p = state->selector_map; p->id; p++) {
if (p->id == unitid && index < p->count) if (p->id == unitid && index < p->count) {
return strlcpy(buf, p->names[index], buflen); len = strscpy(buf, p->names[index], buflen);
return len < 0 ? buflen : len;
}
} }
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment