* [RFC] iproute2: reject zero length strings for matches
@ 2017-10-12 1:21 Stephen Hemminger
0 siblings, 0 replies; only message in thread
From: Stephen Hemminger @ 2017-10-12 1:21 UTC (permalink / raw)
To: netdev
The ip commands use the function matches() to allow for abbreviations like:
$ ip l
$ ip r
But the function does not check for zero length strings which is potentially error
prone (but might also break some power users assumptions). For example:
$ ip ""
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
This patch checks for zero length strings and never matches the option.
$ ip ""
Object "" is unknown, try "ip help".
diff --git a/lib/utils.c b/lib/utils.c
index ac155bf5a044..b68a2e0f4a07 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -733,7 +733,7 @@ int matches(const char *cmd, const char *pattern)
{
int len = strlen(cmd);
- if (len > strlen(pattern))
+ if (len == 0 || len > strlen(pattern))
return -1;
return memcmp(pattern, cmd, len);
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2017-10-12 1:21 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-12 1:21 [RFC] iproute2: reject zero length strings for matches Stephen Hemminger
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.