lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 23 Jan 2013 21:16:58 +0800 From: Weiping Pan <panweiping3@...il.com> To: Li Yu <raise.sail@...il.com> CC: netdev <netdev@...r.kernel.org>, David Miller <davem@...emloft.net>, Eric Dumazet <eric.dumazet@...il.com>, Bruce Curtis <brutus@...gle.com> Subject: Re: v3 for tcp friends? On 01/23/2013 05:52 PM, Li Yu wrote: > 于 2013年01月23日 17:39, Li Yu 写道: >> 于 2013年01月23日 15:58, Li Yu 写道: >>> 于 2013年01月23日 15:21, Li Yu 写道: >>>> 于 2013年01月23日 14:46, Eric Dumazet 写道: >>>>> On Wed, 2013-01-23 at 14:12 +0800, Li Yu wrote: >>>>>> Oops, this hang is not since TCP friends patch! >>>>>> >>>>>> sk_sndbuf_get() is broken by 32 bits integer overflow >>>>>> because of so large value in net.ipv4.tcp_{rmem,wmem}. >>>>>> >>>>>> but this hang also can be found in net-next.git >>>>>> (3.8.0-rc3+), if we run below commands, then all new >>>>>> TCP connections stop working! >>>>>> >>>>>> # when TCP friends is disabled >>>>>> sysctl -w net.ipv4.tcp_rmem="4096 4294967296 4294967296" # 4GB >>>>>> sysctl -w net.ipv4.tcp_wmem="4096 4294967296 4294967296" >>>>> >>>>> Right we need to make sure we dont overflow. >>>>> >>>>> Try the following fix : >>>>> >>>>> diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c >>>>> index a25e1d2..1459145 100644 >>>>> --- a/net/ipv4/sysctl_net_ipv4.c >>>>> +++ b/net/ipv4/sysctl_net_ipv4.c >>>>> @@ -549,14 +549,16 @@ static struct ctl_table ipv4_table[] = { >>>>> .data = &sysctl_tcp_wmem, >>>>> .maxlen = sizeof(sysctl_tcp_wmem), >>>>> .mode = 0644, >>>>> - .proc_handler = proc_dointvec >>>>> + .extra1 = &zero, >> >> If we added below: >> >> +static int one = 1; >> +static int int_max = INT_MAX; >> .... >> + .extra1 = &one, >> + .extra2 = &int_max, >> > > The "int_max" may be unnecessary here :) Hi, Li Yu, I tested that your patch works fine. Can you post a complete patch ? thanks Weiping Pan -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists