str++;
if (!(*str))
return -EINVAL;
- size = 0;
+ size = 1; /* for '\0' */
if (*str != '"' && *str != '\'') {
while (*str && *str != ',') {
if (size < sizeof(buf)) {
if (*str == c)
str++;
}
- if (*str == '\0')
- return 0;
+ if (*str == '\0') {
+ snd_mixer_selem_id_set_index(sid, 0);
+ *ptr = 0;
+ goto _set;
+ }
if (*str != ',')
return -EINVAL;
*ptr = 0; /* terminate the string */
if (!isdigit(*str))
return -EINVAL;
snd_mixer_selem_id_set_index(sid, atoi(str));
+ _set:
snd_mixer_selem_id_set_name(sid, buf);
return 0;
}