Commit 79654a76 authored by Andreas Steffen's avatar Andreas Steffen Committed by David S. Miller

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: default avatarAndreas Steffen <andreas.steffen@strongswan.org>
Acked-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarArnaud Ebalard <arno@natisbad.org>
parent bbb770e7
...@@ -33,6 +33,7 @@ __xfrm4_init_tempsel(struct xfrm_state *x, struct flowi *fl, ...@@ -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, ...@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment