|
@@ -1819,7 +1819,7 @@ xfrm_state_ok(struct xfrm_tmpl *tmpl, struct xfrm_state *x,
|
|
|
(x->id.spi == tmpl->id.spi || !tmpl->id.spi) &&
|
|
|
(x->props.reqid == tmpl->reqid || !tmpl->reqid) &&
|
|
|
x->props.mode == tmpl->mode &&
|
|
|
- ((tmpl->aalgos & (1<<x->props.aalgo)) ||
|
|
|
+ (tmpl->allalgs || (tmpl->aalgos & (1<<x->props.aalgo)) ||
|
|
|
!(xfrm_id_proto_match(tmpl->id.proto, IPSEC_PROTO_ANY))) &&
|
|
|
!(x->props.mode != XFRM_MODE_TRANSPORT &&
|
|
|
xfrm_state_addr_cmp(tmpl, x, family));
|