summaryrefslogtreecommitdiffstats
path: root/testing/linux-grsec/0003-xfrm-SA-lookups-with-mark.patch
diff options
context:
space:
mode:
Diffstat (limited to 'testing/linux-grsec/0003-xfrm-SA-lookups-with-mark.patch')
-rw-r--r--testing/linux-grsec/0003-xfrm-SA-lookups-with-mark.patch100
1 files changed, 0 insertions, 100 deletions
diff --git a/testing/linux-grsec/0003-xfrm-SA-lookups-with-mark.patch b/testing/linux-grsec/0003-xfrm-SA-lookups-with-mark.patch
deleted file mode 100644
index e3bf90bf..00000000
--- a/testing/linux-grsec/0003-xfrm-SA-lookups-with-mark.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 7940065d02766d7732a7cda5c2c889beb21ca089 Mon Sep 17 00:00:00 2001
-From: Jamal Hadi Salim <hadi@cyberus.ca>
-Date: Mon, 22 Feb 2010 11:32:56 +0000
-Subject: [PATCH 3/7] xfrm: SA lookups with mark
-
-Allow mark to be added to the SA lookup
-
-Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
- net/xfrm/xfrm_state.c | 12 ++++++++++++
- 1 files changed, 12 insertions(+), 0 deletions(-)
-
-diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
-index ff7d83e..56abfd5 100644
---- a/net/xfrm/xfrm_state.c
-+++ b/net/xfrm/xfrm_state.c
-@@ -672,6 +672,8 @@ static struct xfrm_state *__xfrm_state_lookup(struct net *net, u32 mark, xfrm_ad
- xfrm_addr_cmp(&x->id.daddr, daddr, family))
- continue;
-
-+ if ((mark & x->mark.m) != x->mark.v)
-+ continue;
- xfrm_state_hold(x);
- return x;
- }
-@@ -692,6 +694,8 @@ static struct xfrm_state *__xfrm_state_lookup_byaddr(struct net *net, u32 mark,
- xfrm_addr_cmp(&x->props.saddr, saddr, family))
- continue;
-
-+ if ((mark & x->mark.m) != x->mark.v)
-+ continue;
- xfrm_state_hold(x);
- return x;
- }
-@@ -784,6 +788,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
- hlist_for_each_entry(x, entry, net->xfrm.state_bydst+h, bydst) {
- if (x->props.family == family &&
- x->props.reqid == tmpl->reqid &&
-+ (mark & x->mark.m) == x->mark.v &&
- !(x->props.flags & XFRM_STATE_WILDRECV) &&
- xfrm_state_addr_check(x, daddr, saddr, family) &&
- tmpl->mode == x->props.mode &&
-@@ -799,6 +804,7 @@ xfrm_state_find(xfrm_address_t *daddr, xfrm_address_t *saddr,
- hlist_for_each_entry(x, entry, net->xfrm.state_bydst+h_wildcard, bydst) {
- if (x->props.family == family &&
- x->props.reqid == tmpl->reqid &&
-+ (mark & x->mark.m) == x->mark.v &&
- !(x->props.flags & XFRM_STATE_WILDRECV) &&
- xfrm_state_addr_check(x, daddr, saddr, family) &&
- tmpl->mode == x->props.mode &&
-@@ -883,6 +889,7 @@ xfrm_stateonly_find(struct net *net, u32 mark,
- hlist_for_each_entry(x, entry, net->xfrm.state_bydst+h, bydst) {
- if (x->props.family == family &&
- x->props.reqid == reqid &&
-+ (mark & x->mark.m) == x->mark.v &&
- !(x->props.flags & XFRM_STATE_WILDRECV) &&
- xfrm_state_addr_check(x, daddr, saddr, family) &&
- mode == x->props.mode &&
-@@ -945,11 +952,13 @@ static void __xfrm_state_bump_genids(struct xfrm_state *xnew)
- struct xfrm_state *x;
- struct hlist_node *entry;
- unsigned int h;
-+ u32 mark = xnew->mark.v & xnew->mark.m;
-
- h = xfrm_dst_hash(net, &xnew->id.daddr, &xnew->props.saddr, reqid, family);
- hlist_for_each_entry(x, entry, net->xfrm.state_bydst+h, bydst) {
- if (x->props.family == family &&
- x->props.reqid == reqid &&
-+ (mark & x->mark.m) == x->mark.v &&
- !xfrm_addr_cmp(&x->id.daddr, &xnew->id.daddr, family) &&
- !xfrm_addr_cmp(&x->props.saddr, &xnew->props.saddr, family))
- x->genid = xfrm_state_genid;
-@@ -971,6 +980,7 @@ static struct xfrm_state *__find_acq_core(struct net *net, struct xfrm_mark *m,
- unsigned int h = xfrm_dst_hash(net, daddr, saddr, reqid, family);
- struct hlist_node *entry;
- struct xfrm_state *x;
-+ u32 mark = m->v & m->m;
-
- hlist_for_each_entry(x, entry, net->xfrm.state_bydst+h, bydst) {
- if (x->props.reqid != reqid ||
-@@ -979,6 +989,7 @@ static struct xfrm_state *__find_acq_core(struct net *net, struct xfrm_mark *m,
- x->km.state != XFRM_STATE_ACQ ||
- x->id.spi != 0 ||
- x->id.proto != proto ||
-+ (mark & x->mark.m) != x->mark.v ||
- xfrm_addr_cmp(&x->id.daddr, daddr, family) ||
- xfrm_addr_cmp(&x->props.saddr, saddr, family))
- continue;
-@@ -1440,6 +1451,7 @@ static struct xfrm_state *__xfrm_find_acq_byseq(struct net *net, u32 mark, u32 s
-
- hlist_for_each_entry(x, entry, net->xfrm.state_bydst+i, bydst) {
- if (x->km.seq == seq &&
-+ (mark & x->mark.m) == x->mark.v &&
- x->km.state == XFRM_STATE_ACQ) {
- xfrm_state_hold(x);
- return x;
---
-1.6.3.3
-