RDS: null pointer dereference in rds_atomic_free_op
[pandora-kernel.git] / net / decnet / af_decnet.c
index 19acd00..c0486c8 100644 (file)
@@ -681,6 +681,9 @@ static int dn_create(struct net *net, struct socket *sock, int protocol,
 {
        struct sock *sk;
 
+       if (protocol < 0 || protocol > SK_PROTOCOL_MAX)
+               return -EINVAL;
+
        if (!net_eq(net, &init_net))
                return -EAFNOSUPPORT;
 
@@ -2354,6 +2357,8 @@ static const struct proto_ops dn_proto_ops = {
        .sendpage =     sock_no_sendpage,
 };
 
+void dn_register_sysctl_skeleton(void);
+void dn_unregister_sysctl_skeleton(void);
 void dn_register_sysctl(void);
 void dn_unregister_sysctl(void);
 
@@ -2374,6 +2379,7 @@ static int __init decnet_init(void)
        if (rc != 0)
                goto out;
 
+       dn_register_sysctl_skeleton();
        dn_neigh_init();
        dn_dev_init();
        dn_route_init();
@@ -2413,6 +2419,7 @@ static void __exit decnet_exit(void)
        dn_fib_cleanup();
 
        proc_net_remove(&init_net, "decnet");
+       dn_unregister_sysctl_skeleton();
 
        proto_unregister(&dn_proto);