Revert "ipv6: constify inet6_protocol structures"
authorJulia Lawall <julia.lawall@lip6.fr>
Tue, 1 Aug 2017 16:27:28 +0000 (18:27 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 1 Aug 2017 17:03:17 +0000 (10:03 -0700)
This reverts commit 3a3a4e3054137c5ff5d4d306ec834f6d25d7f95b.

inet6_add_protocol and inet6_del_protocol include casts that remove the
effect of the const annotation on their parameter, leading to possible
runtime crashes.

Reported-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/ip6_gre.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c

index 33865d6..67ff2aa 100644 (file)
@@ -1080,7 +1080,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
 }
 
 
-static const struct inet6_protocol ip6gre_protocol = {
+static struct inet6_protocol ip6gre_protocol __read_mostly = {
        .handler     = gre_rcv,
        .err_handler = ip6gre_err,
        .flags       = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
index 39ee8e7..ced5dcf 100644 (file)
@@ -1944,7 +1944,7 @@ struct proto tcpv6_prot = {
        .diag_destroy           = tcp_abort,
 };
 
-static const struct inet6_protocol tcpv6_protocol = {
+static struct inet6_protocol tcpv6_protocol = {
        .early_demux    =       tcp_v6_early_demux,
        .early_demux_handler =  tcp_v6_early_demux,
        .handler        =       tcp_v6_rcv,
index 5f8b8d7..4a3e656 100644 (file)
@@ -1448,7 +1448,7 @@ int compat_udpv6_getsockopt(struct sock *sk, int level, int optname,
 }
 #endif
 
-static const struct inet6_protocol udpv6_protocol = {
+static struct inet6_protocol udpv6_protocol = {
        .early_demux    =       udp_v6_early_demux,
        .early_demux_handler =  udp_v6_early_demux,
        .handler        =       udpv6_rcv,