netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][XFRM]: nlmsg length not computed correctly in the presence of subpolicies
@ 2006-11-17 13:48 jamal
  2006-11-18  9:08 ` Masahide NAKAMURA
  0 siblings, 1 reply; 3+ messages in thread
From: jamal @ 2006-11-17 13:48 UTC (permalink / raw)
  To: David Miller; +Cc: Masahide NAKAMURA, netdev

[-- Attachment #1: Type: text/plain, Size: 186 bytes --]

Another one in the same spirit as before. Compiles. I dont have
a good test case, but looks right.
Nakamura-san please ACK and Dave (as before this goes in as a bug-fix).

cheers,
jamal

[-- Attachment #2: ipsec-subp2 --]
[-- Type: text/plain, Size: 2003 bytes --]

[XFRM]: nlmsg length not computed correctly in the presence of subpolicies

I actually dont have a test case for these; i just found them by
inspection. Refer to patch "[XFRM]: Sub-policies broke policy events"
for more info

Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>

---
commit c3d793454ab2a36c2d618d226d7de975ab9b7570
tree 26198ba84d85317b4f1b54c0e10c220dbe0d97da
parent b53ec68c276ac1d879759de130620a72254cb969
author Jamal Hadi Salim <hadi@cyberus.ca> Fri, 17 Nov 2006 08:39:52 -0500
committer Jamal Hadi Salim <hadi@jzny2.(none)> Fri, 17 Nov 2006 08:39:52 -0500

 net/xfrm/xfrm_user.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
index 2dae1c1..c4cde57 100644
--- a/net/xfrm/xfrm_user.c
+++ b/net/xfrm/xfrm_user.c
@@ -1927,6 +1927,9 @@ static int xfrm_send_acquire(struct xfrm
 	len = RTA_SPACE(sizeof(struct xfrm_user_tmpl) * xp->xfrm_nr);
 	len += NLMSG_SPACE(sizeof(struct xfrm_user_acquire));
 	len += RTA_SPACE(xfrm_user_sec_ctx_size(xp));
+#ifdef CONFIG_XFRM_SUB_POLICY
+	len += RTA_SPACE(sizeof(struct xfrm_userpolicy_type));
+#endif
 	skb = alloc_skb(len, GFP_ATOMIC);
 	if (skb == NULL)
 		return -ENOMEM;
@@ -2034,6 +2037,9 @@ static int xfrm_exp_policy_notify(struct
 	len = RTA_SPACE(sizeof(struct xfrm_user_tmpl) * xp->xfrm_nr);
 	len += NLMSG_SPACE(sizeof(struct xfrm_user_polexpire));
 	len += RTA_SPACE(xfrm_user_sec_ctx_size(xp));
+#ifdef CONFIG_XFRM_SUB_POLICY
+	len += RTA_SPACE(sizeof(struct xfrm_userpolicy_type));
+#endif
 	skb = alloc_skb(len, GFP_ATOMIC);
 	if (skb == NULL)
 		return -ENOMEM;
@@ -2109,10 +2115,12 @@ static int xfrm_notify_policy_flush(stru
 	struct nlmsghdr *nlh;
 	struct sk_buff *skb;
 	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
-	int len = NLMSG_LENGTH(0);
+	len += NLMSG_LENGTH(0);
 
 	skb = alloc_skb(len, GFP_ATOMIC);
 	if (skb == NULL)

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-11-19 22:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-11-17 13:48 [PATCH][XFRM]: nlmsg length not computed correctly in the presence of subpolicies jamal
2006-11-18  9:08 ` Masahide NAKAMURA
2006-11-19 22:55   ` David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).