Revision e7d316a02f683864a12389f8808570e37fb90aa3 authored by Subash Abhinov Kasiviswanathan on 25 August 2016, 22:16:51 UTC, committed by Linus Torvalds on 27 August 2016, 00:39:35 UTC
We have scripts which write to certain fields on 3.18 kernels but this seems to be failing on 4.4 kernels. An entry which we write to here is xfrm_aevent_rseqth which is u32. echo 4294967295 > /proc/sys/net/core/xfrm_aevent_rseqth Commit 230633d109e3 ("kernel/sysctl.c: detect overflows when converting to int") prevented writing to sysctl entries when integer overflow occurs. However, this does not apply to unsigned integers. Heinrich suggested that we introduce a new option to handle 64 bit limits and set min as 0 and max as UINT_MAX. This might not work as it leads to issues similar to __do_proc_doulongvec_minmax. Alternatively, we would need to change the datatype of the entry to 64 bit. static int __do_proc_doulongvec_minmax(void *data, struct ctl_table { i = (unsigned long *) data; //This cast is causing to read beyond the size of data (u32) vleft = table->maxlen / sizeof(unsigned long); //vleft is 0 because maxlen is sizeof(u32) which is lesser than sizeof(unsigned long) on x86_64. Introduce a new proc handler proc_douintvec. Individual proc entries will need to be updated to use the new handler. [akpm@linux-foundation.org: coding-style fixes] Fixes: 230633d109e3 ("kernel/sysctl.c:detect overflows when converting to int") Link: http://lkml.kernel.org/r/1471479806-5252-1-git-send-email-subashab@codeaurora.org Signed-off-by: Subash Abhinov Kasiviswanathan <subashab@codeaurora.org> Cc: Heinrich Schuchardt <xypron.glpk@gmx.de> Cc: Kees Cook <keescook@chromium.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Ingo Molnar <mingo@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 8582fb5
File | Mode | Size |
---|---|---|
netfilter | ||
Kconfig | -rw-r--r-- | 24.3 KB |
Makefile | -rw-r--r-- | 2.5 KB |
af_inet.c | -rw-r--r-- | 46.6 KB |
ah4.c | -rw-r--r-- | 13.5 KB |
arp.c | -rw-r--r-- | 34.9 KB |
cipso_ipv4.c | -rw-r--r-- | 61.1 KB |
datagram.c | -rw-r--r-- | 3.2 KB |
devinet.c | -rw-r--r-- | 59.9 KB |
esp4.c | -rw-r--r-- | 17.6 KB |
fib_frontend.c | -rw-r--r-- | 31.0 KB |
fib_lookup.h | -rw-r--r-- | 1.3 KB |
fib_rules.c | -rw-r--r-- | 8.3 KB |
fib_semantics.c | -rw-r--r-- | 38.0 KB |
fib_trie.c | -rw-r--r-- | 63.9 KB |
fou.c | -rw-r--r-- | 23.3 KB |
gre_demux.c | -rw-r--r-- | 4.3 KB |
gre_offload.c | -rw-r--r-- | 7.2 KB |
icmp.c | -rw-r--r-- | 29.0 KB |
igmp.c | -rw-r--r-- | 71.3 KB |
inet_connection_sock.c | -rw-r--r-- | 26.7 KB |
inet_diag.c | -rw-r--r-- | 28.6 KB |
inet_fragment.c | -rw-r--r-- | 10.3 KB |
inet_hashtables.c | -rw-r--r-- | 18.4 KB |
inet_timewait_sock.c | -rw-r--r-- | 8.9 KB |
inetpeer.c | -rw-r--r-- | 15.9 KB |
ip_forward.c | -rw-r--r-- | 3.9 KB |
ip_fragment.c | -rw-r--r-- | 21.1 KB |
ip_gre.c | -rw-r--r-- | 32.7 KB |
ip_input.c | -rw-r--r-- | 14.5 KB |
ip_options.c | -rw-r--r-- | 15.1 KB |
ip_output.c | -rw-r--r-- | 39.6 KB |
ip_sockglue.c | -rw-r--r-- | 35.7 KB |
ip_tunnel.c | -rw-r--r-- | 25.8 KB |
ip_tunnel_core.c | -rw-r--r-- | 12.2 KB |
ip_vti.c | -rw-r--r-- | 15.1 KB |
ipcomp.c | -rw-r--r-- | 4.6 KB |
ipconfig.c | -rw-r--r-- | 39.7 KB |
ipip.c | -rw-r--r-- | 17.3 KB |
ipmr.c | -rw-r--r-- | 66.6 KB |
netfilter.c | -rw-r--r-- | 5.2 KB |
ping.c | -rw-r--r-- | 29.1 KB |
proc.c | -rw-r--r-- | 20.3 KB |
protocol.c | -rw-r--r-- | 2.3 KB |
raw.c | -rw-r--r-- | 25.7 KB |
route.c | -rw-r--r-- | 71.0 KB |
syncookies.c | -rw-r--r-- | 11.4 KB |
sysctl_net_ipv4.c | -rw-r--r-- | 24.9 KB |
tcp.c | -rw-r--r-- | 85.6 KB |
tcp_bic.c | -rw-r--r-- | 6.2 KB |
tcp_cdg.c | -rw-r--r-- | 11.2 KB |
tcp_cong.c | -rw-r--r-- | 10.9 KB |
tcp_cubic.c | -rw-r--r-- | 14.7 KB |
tcp_dctcp.c | -rw-r--r-- | 9.5 KB |
tcp_diag.c | -rw-r--r-- | 2.4 KB |
tcp_fastopen.c | -rw-r--r-- | 9.1 KB |
tcp_highspeed.c | -rw-r--r-- | 4.8 KB |
tcp_htcp.c | -rw-r--r-- | 7.4 KB |
tcp_hybla.c | -rw-r--r-- | 4.9 KB |
tcp_illinois.c | -rw-r--r-- | 8.2 KB |
tcp_input.c | -rw-r--r-- | 180.9 KB |
tcp_ipv4.c | -rw-r--r-- | 61.9 KB |
tcp_lp.c | -rw-r--r-- | 8.7 KB |
tcp_metrics.c | -rw-r--r-- | 30.5 KB |
tcp_minisocks.c | -rw-r--r-- | 26.0 KB |
tcp_nv.c | -rw-r--r-- | 14.8 KB |
tcp_offload.c | -rw-r--r-- | 7.8 KB |
tcp_output.c | -rw-r--r-- | 102.6 KB |
tcp_probe.c | -rw-r--r-- | 7.4 KB |
tcp_recovery.c | -rw-r--r-- | 3.5 KB |
tcp_scalable.c | -rw-r--r-- | 1.4 KB |
tcp_timer.c | -rw-r--r-- | 20.2 KB |
tcp_vegas.c | -rw-r--r-- | 9.6 KB |
tcp_vegas.h | -rw-r--r-- | 901 bytes |
tcp_veno.c | -rw-r--r-- | 5.7 KB |
tcp_westwood.c | -rw-r--r-- | 8.2 KB |
tcp_yeah.c | -rw-r--r-- | 6.9 KB |
tunnel4.c | -rw-r--r-- | 5.4 KB |
udp.c | -rw-r--r-- | 63.7 KB |
udp_diag.c | -rw-r--r-- | 5.5 KB |
udp_impl.h | -rw-r--r-- | 1.2 KB |
udp_offload.c | -rw-r--r-- | 10.1 KB |
udp_tunnel.c | -rw-r--r-- | 4.7 KB |
udplite.c | -rw-r--r-- | 3.4 KB |
xfrm4_input.c | -rw-r--r-- | 3.9 KB |
xfrm4_mode_beet.c | -rw-r--r-- | 3.7 KB |
xfrm4_mode_transport.c | -rw-r--r-- | 2.1 KB |
xfrm4_mode_tunnel.c | -rw-r--r-- | 3.0 KB |
xfrm4_output.c | -rw-r--r-- | 2.6 KB |
xfrm4_policy.c | -rw-r--r-- | 8.6 KB |
xfrm4_protocol.c | -rw-r--r-- | 6.7 KB |
xfrm4_state.c | -rw-r--r-- | 2.4 KB |
xfrm4_tunnel.c | -rw-r--r-- | 2.7 KB |
Computing file changes ...