[XFRM]: Make flush notifier prettier when subpolicy used
authorJamal Hadi Salim <hadi@cyberus.ca>
Mon, 27 Nov 2006 20:58:20 +0000 (12:58 -0800)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:30:49 +0000 (21:30 -0800)
Might as well make flush notifier prettier when subpolicy used

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/xfrm/xfrm_user.c

index 8dbb38b91de2a46bd533c515d35a0d2171d6a9da..006c88c163e0653fb69d6e692aed80ba705e433c 100644 (file)
@@ -2113,7 +2113,6 @@ static int xfrm_notify_policy_flush(struct km_event *c)
        unsigned char *b;
        int len = 0;
 #ifdef CONFIG_XFRM_SUB_POLICY
-       struct xfrm_userpolicy_type upt;
        len += RTA_SPACE(sizeof(struct xfrm_userpolicy_type));
 #endif
        len += NLMSG_LENGTH(0);
@@ -2126,12 +2125,8 @@ static int xfrm_notify_policy_flush(struct km_event *c)
 
        nlh = NLMSG_PUT(skb, c->pid, c->seq, XFRM_MSG_FLUSHPOLICY, 0);
        nlh->nlmsg_flags = 0;
-
-#ifdef CONFIG_XFRM_SUB_POLICY
-       memset(&upt, 0, sizeof(upt));
-       upt.type = c->data.type;
-       RTA_PUT(skb, XFRMA_POLICY_TYPE, sizeof(upt), &upt);
-#endif
+       if (copy_to_user_policy_type(c->data.type, skb) < 0)
+               goto nlmsg_failure;
 
        nlh->nlmsg_len = skb->tail - b;
 
@@ -2139,9 +2134,6 @@ static int xfrm_notify_policy_flush(struct km_event *c)
        return netlink_broadcast(xfrm_nl, skb, 0, XFRMNLGRP_POLICY, GFP_ATOMIC);
 
 nlmsg_failure:
-#ifdef CONFIG_XFRM_SUB_POLICY
-rtattr_failure:
-#endif
        kfree_skb(skb);
        return -1;
 }