diff options
author | Eldad Zack <eldad@fogrefinery.com> | 2012-05-19 14:13:18 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-05-20 04:06:17 -0400 |
commit | 413c27d8697751f72d2d6cf289140a8e060a8032 (patch) | |
tree | ed13d36cfc8651b542eca7c1f92e4f9a09fe6e7d | |
parent | b37f4d7b011955c84cdbb8c370927d93701fb174 (diff) |
net/ipv4: replace simple_strtoul with kstrtoul
Replace simple_strtoul with kstrtoul in three similar occurrences, all setup
handlers:
* route.c: set_rhash_entries
* tcp.c: set_thash_entries
* udp.c: set_uhash_entries
Also check if the conversion failed.
Signed-off-by: Eldad Zack <eldad@fogrefinery.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/route.c | 8 | ||||
-rw-r--r-- | net/ipv4/tcp.c | 8 | ||||
-rw-r--r-- | net/ipv4/udp.c | 8 |
3 files changed, 21 insertions, 3 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index 76e5880cdb0..ffcb3b01684 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -3408,9 +3408,15 @@ struct ip_rt_acct __percpu *ip_rt_acct __read_mostly; static __initdata unsigned long rhash_entries; static int __init set_rhash_entries(char *str) { + ssize_t ret; + if (!str) return 0; - rhash_entries = simple_strtoul(str, &str, 0); + + ret = kstrtoul(str, 0, &rhash_entries); + if (ret) + return 0; + return 1; } __setup("rhash_entries=", set_rhash_entries); diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index 63ddaee7209..e13546ca992 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -3462,9 +3462,15 @@ extern struct tcp_congestion_ops tcp_reno; static __initdata unsigned long thash_entries; static int __init set_thash_entries(char *str) { + ssize_t ret; + if (!str) return 0; - thash_entries = simple_strtoul(str, &str, 0); + + ret = kstrtoul(str, 0, &thash_entries); + if (ret) + return 0; + return 1; } __setup("thash_entries=", set_thash_entries); diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c index 279fd084630..609397ee78f 100644 --- a/net/ipv4/udp.c +++ b/net/ipv4/udp.c @@ -2173,9 +2173,15 @@ void udp4_proc_exit(void) static __initdata unsigned long uhash_entries; static int __init set_uhash_entries(char *str) { + ssize_t ret; + if (!str) return 0; - uhash_entries = simple_strtoul(str, &str, 0); + + ret = kstrtoul(str, 0, &uhash_entries); + if (ret) + return 0; + if (uhash_entries && uhash_entries < UDP_HTABLE_SIZE_MIN) uhash_entries = UDP_HTABLE_SIZE_MIN; return 1; |