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:
parent
bbb770e7ab
commit
79654a7698
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue