interfamily-state-selection-fix.patch

来自「HIP:Host Identity Protocol」· PATCH 代码 · 共 45 行

PATCH
45
字号
--- 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 + =
减小字号Ctrl + -
显示快捷键?