Message ID | 20161229143507.4934-1-ptikhomirov@virtuozzo.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
From: Pavel Tikhomirov <ptikhomirov@virtuozzo.com> Date: Thu, 29 Dec 2016 17:35:07 +0300 > @@ -958,7 +959,9 @@ static struct ctl_table ipv4_net_table[] = { > .data = &init_net.ipv4.sysctl_tcp_notsent_lowat, > .maxlen = sizeof(unsigned int), > .mode = 0644, > - .proc_handler = proc_dointvec, > + .proc_handler = proc_doulongvec_minmax, > + .extra1 = &zero, > + .extra2 = &uint_max, It seems much simpler to use "proc_douintvec()" to fix this bug. Doesn't it?
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c index 80bc36b..5361373 100644 --- a/net/ipv4/sysctl_net_ipv4.c +++ b/net/ipv4/sysctl_net_ipv4.c @@ -41,6 +41,7 @@ static int tcp_syn_retries_min = 1; static int tcp_syn_retries_max = MAX_TCP_SYNCNT; static int ip_ping_group_range_min[] = { 0, 0 }; static int ip_ping_group_range_max[] = { GID_T_MAX, GID_T_MAX }; +static unsigned int uint_max = UINT_MAX; /* Update system visible IP port range */ static void set_local_port_range(struct net *net, int range[2]) @@ -958,7 +959,9 @@ static struct ctl_table ipv4_net_table[] = { .data = &init_net.ipv4.sysctl_tcp_notsent_lowat, .maxlen = sizeof(unsigned int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = proc_doulongvec_minmax, + .extra1 = &zero, + .extra2 = &uint_max, }, #ifdef CONFIG_IP_ROUTE_MULTIPATH {