xfrm: Have af-specific init_tempsel() initialize family field of temporary selector

While adding MIGRATE support to strongSwan, Andreas Steffen noticed that
the selectors provided in XFRM_MSG_ACQUIRE have their family field
uninitialized (those in MIGRATE do have their family set).

Looking at the code, this is because the af-specific init_tempsel()
(called via afinfo->init_tempsel() in xfrm_init_tempsel()) do not set
the value.

Reported-by: Andreas Steffen <andreas.steffen@strongswan.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Arnaud Ebalard <arno@natisbad.org>
This commit is contained in:
Andreas Steffen 2008-11-04 14:49:19 -08:00 committed by David S. Miller
parent bbb770e7ab
commit 79654a7698
2 changed files with 2 additions and 0 deletions

View File

@ -33,6 +33,7 @@ __xfrm4_init_tempsel(struct xfrm_state *x, struct flowi *fl,
x->sel.dport_mask = htons(0xffff); x->sel.dport_mask = htons(0xffff);
x->sel.sport = xfrm_flowi_sport(fl); x->sel.sport = xfrm_flowi_sport(fl);
x->sel.sport_mask = htons(0xffff); x->sel.sport_mask = htons(0xffff);
x->sel.family = AF_INET;
x->sel.prefixlen_d = 32; x->sel.prefixlen_d = 32;
x->sel.prefixlen_s = 32; x->sel.prefixlen_s = 32;
x->sel.proto = fl->proto; x->sel.proto = fl->proto;

View File

@ -34,6 +34,7 @@ __xfrm6_init_tempsel(struct xfrm_state *x, struct flowi *fl,
x->sel.dport_mask = htons(0xffff); x->sel.dport_mask = htons(0xffff);
x->sel.sport = xfrm_flowi_sport(fl); x->sel.sport = xfrm_flowi_sport(fl);
x->sel.sport_mask = htons(0xffff); x->sel.sport_mask = htons(0xffff);
x->sel.family = AF_INET6;
x->sel.prefixlen_d = 128; x->sel.prefixlen_d = 128;
x->sel.prefixlen_s = 128; x->sel.prefixlen_s = 128;
x->sel.proto = fl->proto; x->sel.proto = fl->proto;