From d674fc01f35dea55805bb531194e9b2fcd447b1e Mon Sep 17 00:00:00 2001 From: Eric Dumazet Date: Tue, 7 Dec 2010 22:26:15 +0000 Subject: [PATCH] --- yaml --- r: 224832 b: refs/heads/master c: 4bc65dd8d88671712d71592a83374cfb0b5fce7a h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/net/core/filter.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index dc0e1f5bfe24..cdf0cdd071dd 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 60d509c823cca21e77d537bd356785f7cfe8f0d1 +refs/heads/master: 4bc65dd8d88671712d71592a83374cfb0b5fce7a diff --git a/trunk/net/core/filter.c b/trunk/net/core/filter.c index e193e29d4671..e8a6ac411ffb 100644 --- a/trunk/net/core/filter.c +++ b/trunk/net/core/filter.c @@ -88,7 +88,7 @@ enum { }; /* No hurry in this branch */ -static void *__load_pointer(const struct sk_buff *skb, int k) +static void *__load_pointer(const struct sk_buff *skb, int k, unsigned int size) { u8 *ptr = NULL; @@ -97,7 +97,7 @@ static void *__load_pointer(const struct sk_buff *skb, int k) else if (k >= SKF_LL_OFF) ptr = skb_mac_header(skb) + k - SKF_LL_OFF; - if (ptr >= skb->head && ptr < skb_tail_pointer(skb)) + if (ptr >= skb->head && ptr + size <= skb_tail_pointer(skb)) return ptr; return NULL; } @@ -110,7 +110,7 @@ static inline void *load_pointer(const struct sk_buff *skb, int k, else { if (k >= SKF_AD_OFF) return NULL; - return __load_pointer(skb, k); + return __load_pointer(skb, k, size); } }