Commit 7b4dc360 authored by Masahide NAKAMURA's avatar Masahide NAKAMURA Committed by David S. Miller

[XFRM]: Do not add a state whose SPI is zero to the SPI hash.

SPI=0 is used for acquired IPsec SA and MIPv6 RO state.
Such state should not be added to the SPI hash
because we do not care about it on deleting path.
Signed-off-by: default avatarMasahide NAKAMURA <nakam@linux-ipv6.org>
Signed-off-by: default avatarYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
parent 7fa6b066
...@@ -96,9 +96,12 @@ static void xfrm_hash_transfer(struct hlist_head *list, ...@@ -96,9 +96,12 @@ static void xfrm_hash_transfer(struct hlist_head *list,
nhashmask); nhashmask);
hlist_add_head(&x->bysrc, nsrctable+h); hlist_add_head(&x->bysrc, nsrctable+h);
h = __xfrm_spi_hash(&x->id.daddr, x->id.spi, x->id.proto, if (x->id.spi) {
x->props.family, nhashmask); h = __xfrm_spi_hash(&x->id.daddr, x->id.spi,
hlist_add_head(&x->byspi, nspitable+h); x->id.proto, x->props.family,
nhashmask);
hlist_add_head(&x->byspi, nspitable+h);
}
} }
} }
...@@ -622,7 +625,7 @@ static void __xfrm_state_insert(struct xfrm_state *x) ...@@ -622,7 +625,7 @@ static void __xfrm_state_insert(struct xfrm_state *x)
h = xfrm_src_hash(&x->props.saddr, x->props.family); h = xfrm_src_hash(&x->props.saddr, x->props.family);
hlist_add_head(&x->bysrc, xfrm_state_bysrc+h); hlist_add_head(&x->bysrc, xfrm_state_bysrc+h);
if (xfrm_id_proto_match(x->id.proto, IPSEC_PROTO_ANY)) { if (x->id.spi) {
h = xfrm_spi_hash(&x->id.daddr, x->id.spi, x->id.proto, h = xfrm_spi_hash(&x->id.daddr, x->id.spi, x->id.proto,
x->props.family); x->props.family);
......
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