aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2005-07-05 14:10:40 -0700
committerDavid S. Miller <davem@davemloft.net>2005-07-05 14:10:40 -0700
commit3154e540e374bbfd62693d95bc8ed51da95efe75 (patch)
tree45f44e770c3102f0dcfdcb5de3709113e4e120db
parent0b05b2a49e430220876f8faa7e4778dc7497033c (diff)
downloadlinux-stericsson-3154e540e374bbfd62693d95bc8ed51da95efe75.tar.gz
[NET]: net/core/filter.c: make len cover the entire packet
As suggested by Herbert Xu: Since we don't require anything to be in the linear packet range anymore make len cover the entire packet. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--net/core/filter.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/net/core/filter.c b/net/core/filter.c
index 3923428a840f..cd91a24f9720 100644
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -76,10 +76,6 @@ static inline void *load_pointer(struct sk_buff *skb, int k,
int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen)
{
- /* len is UNSIGNED. Byte wide insns relies only on implicit
- type casts to prevent reading arbitrary memory locations.
- */
- unsigned int len = skb->len-skb->data_len;
struct sock_filter *fentry; /* We walk down these */
void *ptr;
u32 A = 0; /* Accumulator */
@@ -206,10 +202,10 @@ load_b:
}
return 0;
case BPF_LD|BPF_W|BPF_LEN:
- A = len;
+ A = skb->len;
continue;
case BPF_LDX|BPF_W|BPF_LEN:
- X = len;
+ X = skb->len;
continue;
case BPF_LD|BPF_W|BPF_IND:
k = X + fentry->k;