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 <p...@nwl.cc> --- devlink/devlink.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/devlink/devlink.c b/devlink/devlink.c index f9bc16c350c40..de41a9f4aae10 100644 --- a/devlink/devlink.c +++ b/devlink/devlink.c @@ -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; } -- 2.13.1