Message ID | 20170812120510.28750-2-phil@nwl.cc |
---|---|
State | Changes Requested, archived |
Delegated to: | stephen hemminger |
Headers | show |
On Sat, 12 Aug 2017 14:04:20 +0200 Phil Sutter <phil@nwl.cc> wrote: > 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> Ok, but please don't go too far down the dead end of addressing all possible "if code changes in the future this would be a bug". Keep to finding and fixing the real bugs that exist today.
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; }
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> --- devlink/devlink.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)