|
@@ -1557,14 +1557,13 @@ static int xfrm_add_sa_expire(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|
|
struct xfrm_usersa_info *p = &ue->state;
|
|
|
|
|
|
x = xfrm_state_lookup(&p->id.daddr, p->id.spi, p->id.proto, p->family);
|
|
|
- err = -ENOENT;
|
|
|
|
|
|
+ err = -ENOENT;
|
|
|
if (x == NULL)
|
|
|
return err;
|
|
|
|
|
|
- err = -EINVAL;
|
|
|
-
|
|
|
spin_lock_bh(&x->lock);
|
|
|
+ err = -EINVAL;
|
|
|
if (x->km.state != XFRM_STATE_VALID)
|
|
|
goto out;
|
|
|
km_state_expired(x, ue->hard, current->pid);
|
|
@@ -1574,6 +1573,7 @@ static int xfrm_add_sa_expire(struct sk_buff *skb, struct nlmsghdr *nlh,
|
|
|
xfrm_audit_log(NETLINK_CB(skb).loginuid, NETLINK_CB(skb).sid,
|
|
|
AUDIT_MAC_IPSEC_DELSA, 1, NULL, x);
|
|
|
}
|
|
|
+ err = 0;
|
|
|
out:
|
|
|
spin_unlock_bh(&x->lock);
|
|
|
xfrm_state_put(x);
|