Commit c7fa9d18 authored by David S. Miller's avatar David S. Miller

[NET]: Disallow whitespace in network device names.

It causes way too much trouble and confusion in userspace.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d4274b51
...@@ -116,6 +116,7 @@ ...@@ -116,6 +116,7 @@
#include <linux/audit.h> #include <linux/audit.h>
#include <linux/dmaengine.h> #include <linux/dmaengine.h>
#include <linux/err.h> #include <linux/err.h>
#include <linux/ctype.h>
/* /*
* The list of packet types we will receive (as opposed to discard) * The list of packet types we will receive (as opposed to discard)
...@@ -632,14 +633,22 @@ struct net_device * dev_get_by_flags(unsigned short if_flags, unsigned short mas ...@@ -632,14 +633,22 @@ struct net_device * dev_get_by_flags(unsigned short if_flags, unsigned short mas
* @name: name string * @name: name string
* *
* Network device names need to be valid file names to * Network device names need to be valid file names to
* to allow sysfs to work * to allow sysfs to work. We also disallow any kind of
* whitespace.
*/ */
int dev_valid_name(const char *name) int dev_valid_name(const char *name)
{ {
return !(*name == '\0' if (*name == '\0')
|| !strcmp(name, ".") return 0;
|| !strcmp(name, "..") if (!strcmp(name, ".") || !strcmp(name, ".."))
|| strchr(name, '/')); return 0;
while (*name) {
if (*name == '/' || isspace(*name))
return 0;
name++;
}
return 1;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment