Revert to Fedora kernel-2.6.17-1.2187_FC5 patched with vs2.0.2.1; there are too many...
[linux-2.6.git] / net / key / af_key.c
index 3a95b2e..8595822 100644 (file)
@@ -14,6 +14,7 @@
  *             Derek Atkins <derek@ihtfp.com>
  */
 
+#include <linux/config.h>
 #include <linux/capability.h>
 #include <linux/module.h>
 #include <linux/kernel.h>
@@ -1453,23 +1454,21 @@ static int pfkey_delete(struct sock *sk, struct sk_buff *skb, struct sadb_msg *h
        if (x == NULL)
                return -ESRCH;
 
-       if ((err = security_xfrm_state_delete(x)))
-               goto out;
-
        if (xfrm_state_kern(x)) {
-               err = -EPERM;
-               goto out;
+               xfrm_state_put(x);
+               return -EPERM;
        }
        
        err = xfrm_state_delete(x);
-       if (err < 0)
-               goto out;
+       if (err < 0) {
+               xfrm_state_put(x);
+               return err;
+       }
 
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
        c.event = XFRM_MSG_DELSA;
        km_state_notify(x, &c);
-out:
        xfrm_state_put(x);
 
        return err;
@@ -2275,14 +2274,11 @@ static int pfkey_spddelete(struct sock *sk, struct sk_buff *skb, struct sadb_msg
 
        err = 0;
 
-       if ((err = security_xfrm_policy_delete(xp)))
-               goto out;
        c.seq = hdr->sadb_msg_seq;
        c.pid = hdr->sadb_msg_pid;
        c.event = XFRM_MSG_DELPOLICY;
        km_policy_notify(xp, pol->sadb_x_policy_dir-1, &c);
 
-out:
        xfrm_pol_put(xp);
        return err;
 }