l2tp: unmanaged L2TPv3 tunnels fixes
Eric Dumazet [Sun, 4 Apr 2010 08:02:46 +0000 (01:02 -0700)]
Followup to commit 789a4a2c
(l2tp: Add support for static unmanaged L2TPv3 tunnels)

One missing init in l2tp_tunnel_sock_create() could access random kernel
memory, and a bit field should be unsigned.

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/l2tp/l2tp_core.c
net/l2tp/l2tp_core.h

index 13ed85b..98dfcce 100644 (file)
@@ -1227,7 +1227,7 @@ static int l2tp_tunnel_sock_create(u32 tunnel_id, u32 peer_tunnel_id, struct l2t
        int err = -EINVAL;
        struct sockaddr_in udp_addr;
        struct sockaddr_l2tpip ip_addr;
-       struct socket *sock;
+       struct socket *sock = NULL;
 
        switch (cfg->encap) {
        case L2TP_ENCAPTYPE_UDP:
index 91b1b9c..f0f318e 100644 (file)
@@ -152,7 +152,7 @@ struct l2tp_tunnel_cfg {
        struct in_addr          peer_ip;
        u16                     local_udp_port;
        u16                     peer_udp_port;
-       int                     use_udp_checksums:1;
+       unsigned int            use_udp_checksums:1;
 };
 
 struct l2tp_tunnel {