common/mlx5: replace strsep with strtok_r
strsep() is a non-standardized API (by C or POSIX) and thus it is non-portable between different operating systems. Replace it with strtok_r() which is standardized by the C standard, and hence also by POSIX. The replacement occurs in the code that extracts individual PCI class names (e.g. class=net:vdpa:foo:bar). Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
This commit is contained in:
parent
2cecd7f974
commit
3475aeaca7
@ -72,6 +72,7 @@ bus_cmdline_options_handler(__rte_unused const char *key,
|
||||
int class_val;
|
||||
char *found;
|
||||
char *nstr;
|
||||
char *refstr = NULL;
|
||||
|
||||
*ret = 0;
|
||||
nstr = strdup(class_names);
|
||||
@ -80,21 +81,22 @@ bus_cmdline_options_handler(__rte_unused const char *key,
|
||||
return *ret;
|
||||
}
|
||||
nstr_org = nstr;
|
||||
while (nstr) {
|
||||
found = strtok_r(nstr, ":", &refstr);
|
||||
if (!found)
|
||||
goto err;
|
||||
do {
|
||||
/* Extract each individual class name. Multiple
|
||||
* class key,value is supplied as class=net:vdpa:foo:bar.
|
||||
*/
|
||||
found = strsep(&nstr, ":");
|
||||
if (!found)
|
||||
continue;
|
||||
/* Check if its a valid class. */
|
||||
class_val = class_name_to_value(found);
|
||||
/* Check if its a valid class. */
|
||||
if (class_val < 0) {
|
||||
*ret = -EINVAL;
|
||||
goto err;
|
||||
}
|
||||
*ret |= class_val;
|
||||
}
|
||||
found = strtok_r(NULL, ":", &refstr);
|
||||
} while (found);
|
||||
err:
|
||||
free(nstr_org);
|
||||
if (*ret < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user