Properly handle '/' separator in sndioctl.

This commit is contained in:
Alexandre Ratchov 2020-02-10 15:04:43 +01:00
parent 97442bf983
commit cb1c15989c
1 changed files with 7 additions and 8 deletions

View File

@ -562,23 +562,22 @@ dump(void)
int int
cmd(char *line) cmd(char *line)
{ {
char *pos = line; char *pos, *group;
struct info *i, *e, *g; struct info *i, *e, *g;
char group[SIOCTL_NAMEMAX];
char func[SIOCTL_NAMEMAX]; char func[SIOCTL_NAMEMAX];
char astr[SIOCTL_NAMEMAX], vstr[SIOCTL_NAMEMAX]; char astr[SIOCTL_NAMEMAX], vstr[SIOCTL_NAMEMAX];
int aunit, vunit; int aunit, vunit;
unsigned npar = 0, nent = 0; unsigned npar = 0, nent = 0;
int val, comma, mode; int val, comma, mode;
if (!parse_name(&pos, group)) pos = strrchr(line, '/');
return 0; if (pos != NULL) {
if (*pos == '/') group = line;
pos[0] = 0;
pos++; pos++;
else { } else {
/* this was node string, go backwards and assume no group */ group = "";
pos = line; pos = line;
group[0] = '\0';
} }
if (!parse_node(&pos, astr, &aunit)) if (!parse_node(&pos, astr, &aunit))
return 0; return 0;