devlink: Check return code of strslashrsplit()

This function shouldn't fail because all callers of
__dl_argv_handle_port() make sure the passed string contains enough
slashes already, but better make sure if this changes in future the
function won't access uninitialized data.

Signed-off-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
Phil Sutter 2017-08-21 18:36:52 +02:00 committed by Stephen Hemminger
parent 84b6a3f4b5
commit 6e33f7b0f6

View File

@ -526,18 +526,26 @@ static int __dl_argv_handle_port(char *str,
char **p_bus_name, char **p_dev_name,
uint32_t *p_port_index)
{
char *handlestr = handlestr;
char *portstr = portstr;
char *handlestr;
char *portstr;
int err;
strslashrsplit(str, &handlestr, &portstr);
err = strslashrsplit(str, &handlestr, &portstr);
if (err) {
pr_err("Port identification \"%s\" is invalid\n", str);
return err;
}
err = strtouint32_t(portstr, p_port_index);
if (err) {
pr_err("Port index \"%s\" is not a number or not within range\n",
portstr);
return err;
}
strslashrsplit(handlestr, p_bus_name, p_dev_name);
err = strslashrsplit(handlestr, p_bus_name, p_dev_name);
if (err) {
pr_err("Port identification \"%s\" is invalid\n", str);
return err;
}
return 0;
}