summaryrefslogtreecommitdiffstats
path: root/net/decnet/sysctl_net_decnet.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/decnet/sysctl_net_decnet.c')
-rw-r--r--net/decnet/sysctl_net_decnet.c25
1 files changed, 19 insertions, 6 deletions
diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
index ff65e9ae6..c1931c867 100644
--- a/net/decnet/sysctl_net_decnet.c
+++ b/net/decnet/sysctl_net_decnet.c
@@ -54,6 +54,22 @@ static struct ctl_table_header *dn_table_header = NULL;
#define ISALPHA(x) (ISLOWER(x) || ISUPPER(x))
#define INVALID_END_CHAR(x) (ISNUM(x) || ISALPHA(x))
+static void strip_it(char *str)
+{
+ for(;;) {
+ switch(*str) {
+ case ' ':
+ case '\n':
+ case '\r':
+ case ':':
+ *str = 0;
+ case 0:
+ return;
+ }
+ str++;
+ }
+}
+
/*
* Simple routine to parse an ascii DECnet address
* into a network order address.
@@ -159,8 +175,9 @@ static int dn_node_address_handler(ctl_table *table, int write,
return -EFAULT;
addr[len] = 0;
+ strip_it(addr);
- if (parse_addr(&dnaddr, buffer))
+ if (parse_addr(&dnaddr, addr))
return -EINVAL;
dn_dev_devices_off();
@@ -257,8 +274,6 @@ static int dn_def_dev_handler(ctl_table *table, int write,
}
if (write) {
- int i;
-
if (*lenp > 16)
return -E2BIG;
@@ -266,9 +281,7 @@ static int dn_def_dev_handler(ctl_table *table, int write,
return -EFAULT;
devname[*lenp] = 0;
- for(i = 0; i < (*lenp); i++)
- if (devname[i] == '\n')
- devname[i] = 0;
+ strip_it(devname);
if ((dev = __dev_get_by_name(devname)) == NULL)
return -ENODEV;