aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2005-03-31 05:19:27 -0800
committerDavid S. Miller <davem@sunset.davemloft.net>2005-03-31 05:19:27 -0800
commit0038bccf6b28af630e05c75cc1ef516ecd7e92f9 (patch)
tree7ed7bf96b458f3c8113799954f16ab521c84f538
parent71bf6e6d7605727cc287644a11da8e70fd2c63b6 (diff)
downloadhistory-0038bccf6b28af630e05c75cc1ef516ecd7e92f9.tar.gz
[IPSEC]: Check SPI in xfrm_state_find()
Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/xfrm/xfrm_state.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 102bb826e2736a..d96218fc01c06f 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -315,7 +315,8 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
x->props.reqid == tmpl->reqid &&
xfrm_state_addr_check(x, daddr, saddr, family) &&
tmpl->mode == x->props.mode &&
- tmpl->id.proto == x->id.proto) {
+ tmpl->id.proto == x->id.proto &&
+ (tmpl->id.spi == x->id.spi || !tmpl->id.spi)) {
/* Resolution logic:
1. There is a valid state with matching selector.
Done.