kernel-ark/drivers/net/e1000
Jesse Brandeburg 40a14deaf4 e1000: enhance frame fragment detection
Originally From: Neil Horman <nhorman@tuxdriver.com>
Modified by: Jesse Brandeburg <jesse.brandeburg@intel.com>

Hey all-
	A security discussion was recently given:
http://events.ccc.de/congress/2009/Fahrplan//events/3596.en.html
And a patch that I submitted awhile back was brought up.  Apparently some of
their testing revealed that they were able to force a buffer fragment in e1000
in which the trailing fragment was greater than 4 bytes.  As a result the
fragment check I introduced failed to detect the fragement and a partial
invalid frame was passed up into the network stack.  I've written this patch
to correct it.  I'm in the process of testing it now, but it makes good
logical sense to me.  Effectively it maintains a per-adapter state variable
which detects a non-EOP frame, and discards it and subsequent non-EOP frames
leading up to _and_ _including_ the next positive-EOP frame (as it is by
definition the last fragment).  This should prevent any and all partial frames
from entering the network stack from e1000.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-01-20 16:21:22 -08:00
..
e1000_ethtool.c drivers/net: request_irq - Remove unnecessary leading & from second arg 2009-11-18 23:29:17 -08:00
e1000_hw.c e1000: fix namespacecheck warnings 2009-09-26 20:16:01 -07:00
e1000_hw.h e1000: cleanup unused prototype 2009-09-26 20:16:05 -07:00
e1000_main.c e1000: enhance frame fragment detection 2010-01-20 16:21:22 -08:00
e1000_osdep.h e1000: Remove spaces after casts and function names 2008-07-22 19:38:52 -04:00
e1000_param.c e1000: drop dead pcie code from e1000 2009-09-26 20:15:23 -07:00
e1000.h e1000: enhance frame fragment detection 2010-01-20 16:21:22 -08:00
Makefile