netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ben Hutchings <bhutchings@solarflare.com>
To: David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org, linux-net-drivers@solarflare.com
Subject: [PATCH net-next-2.6 5/7] sfc: Fix assertions in efx_filter_rfs()
Date: Thu, 14 Jul 2011 02:17:39 +0100	[thread overview]
Message-ID: <1310606259.2756.28.camel@bwh-desktop> (raw)
In-Reply-To: <1310606090.2756.23.camel@bwh-desktop>

This function is intended to assert (when DEBUG is defined) that the
skb header area includes the header fields it's looking at, which RFS
should already have pulled.  But it uses pskb_may_pull(), which will
attempt to pull more data if necesary.  It must instead compare
skb_headlen() with the required length.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
---
 drivers/net/sfc/filter.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/sfc/filter.c b/drivers/net/sfc/filter.c
index 054f0a3..2b9636f 100644
--- a/drivers/net/sfc/filter.c
+++ b/drivers/net/sfc/filter.c
@@ -657,11 +657,11 @@ int efx_filter_rfs(struct net_device *net_dev, const struct sk_buff *skb,
 		return -EPROTONOSUPPORT;
 
 	/* RFS must validate the IP header length before calling us */
-	EFX_BUG_ON_PARANOID(!pskb_may_pull(skb, nhoff + sizeof(*ip)));
+	EFX_BUG_ON_PARANOID(skb_headlen(skb) < nhoff + sizeof(*ip));
 	ip = (const struct iphdr *)(skb->data + nhoff);
 	if (ip_is_fragment(ip))
 		return -EPROTONOSUPPORT;
-	EFX_BUG_ON_PARANOID(!pskb_may_pull(skb, nhoff + 4 * ip->ihl + 4));
+	EFX_BUG_ON_PARANOID(skb_headlen(skb) < nhoff + 4 * ip->ihl + 4);
 	ports = (const __be16 *)(skb->data + nhoff + 4 * ip->ihl);
 
 	efx_filter_init_rx(&spec, EFX_FILTER_PRI_HINT, 0, rxq_index);
-- 
1.7.4.4



-- 
Ben Hutchings, Senior Software Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


  parent reply	other threads:[~2011-07-14  1:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-14  1:14 pull request: sfc-next 2011-07-14 Ben Hutchings
2011-07-14  1:16 ` [PATCH net-next-2.6 1/7] sfc: Fix loop condition for efx_filter_search() when !for_insert Ben Hutchings
2011-07-14  1:16 ` [PATCH net-next-2.6 2/7] sfc: Allow resets to be upgraded; use atomic ops for safety Ben Hutchings
2011-07-14  1:16 ` [PATCH net-next-2.6 3/7] sfc: Fix mapping of reset reasons and flags to methods Ben Hutchings
2011-07-14  1:17 ` [PATCH net-next-2.6 4/7] sfc: Fix Siena mac statistics on big endian platforms Ben Hutchings
2011-07-14  1:17 ` Ben Hutchings [this message]
2011-07-14  1:17 ` [PATCH net-next-2.6 6/7] sfc: Remove 'Solarstorm' from Kconfig descriptions Ben Hutchings
2011-07-14  1:18 ` [PATCH net-next-2.6 7/7] sfc: Remove 'Communications' after 'Solarflare' in references to hardware Ben Hutchings
2011-07-14 15:44 ` pull request: sfc-next 2011-07-14 David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1310606259.2756.28.camel@bwh-desktop \
    --to=bhutchings@solarflare.com \
    --cc=davem@davemloft.net \
    --cc=linux-net-drivers@solarflare.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).