📄 interfamily-state-selection-fix.patch
字号:
--- linux-2.6.16.5//net/key/af_key.c 2008-01-14 15:35:41.000000000 +0200+++ beet-linux-2.6.16.5///net/key/af_key.c 2008-01-14 15:23:38.000000000 +0200@@ -1169,6 +1169,9 @@ x->sel.prefixlen_s = addr->sadb_address_prefixlen; } + if (!x->sel.family)+ x->sel.family = x->props.family;+ if (ext_hdrs[SADB_X_EXT_NAT_T_TYPE-1]) { struct sadb_x_nat_t_type* n_type; struct xfrm_encap_tmpl *natt;--- linux-2.6.16.5//net/xfrm/xfrm_state.c 2008-01-14 15:35:41.000000000 +0200+++ beet-linux-2.6.16.5///net/xfrm/xfrm_state.c 2008-01-14 15:24:12.000000000 +0200@@ -344,7 +344,7 @@ selector. */ if (x->km.state == XFRM_STATE_VALID) {- if (!xfrm_selector_match(&x->sel, fl, family) ||+ if (!xfrm_selector_match(&x->sel, fl, x->sel.family) || !xfrm_sec_ctx_match(pol->security, x->security)) continue; if (!best ||@@ -356,7 +356,7 @@ acquire_in_progress = 1; } else if (x->km.state == XFRM_STATE_ERROR || x->km.state == XFRM_STATE_EXPIRED) {- if (xfrm_selector_match(&x->sel, fl, family) &&+ if (xfrm_selector_match(&x->sel, fl, x->sel.family) && xfrm_sec_ctx_match(pol->security, x->security)) error = -ESRCH; }--- linux-2.6.16.5//net/xfrm/xfrm_user.c 2008-01-14 15:35:41.000000000 +0200+++ beet-linux-2.6.16.5///net/xfrm/xfrm_user.c 2008-01-14 15:25:51.000000000 +0200@@ -274,6 +274,9 @@ x->props.family = p->family; x->props.saddr = p->saddr; x->props.flags = p->flags;++ if (!x->sel.family)+ x->sel.family = p->family; } static struct xfrm_state *xfrm_state_construct(struct xfrm_usersa_info *p,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -