e1000: fix memcpy in e1000_get_strings

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <git-commits-head@...>
Date: Friday, December 7, 2007 - 5:59 pm

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=c32bc6...
Commit:     c32bc6e9b0778c891f7f3b97cd05c8cdf98b6721
Parent:     70eba18b5664f90d7620905e005b89388e5fd94b
Author:     Roel Kluin <12o3l@tiscali.nl>
AuthorDate: Wed Dec 5 11:57:30 2007 -0800
Committer:  Jeff Garzik <jeff@garzik.org>
CommitDate: Fri Dec 7 15:01:43 2007 -0500

    e1000: fix memcpy in e1000_get_strings
    
    drivers/net/e1000/e1000_ethtool.c:113:
    #define E1000_TEST_LEN sizeof(e1000_gstrings_test) / ETH_GSTRING_LEN
    
    drivers/net/e1000e/ethtool.c:106:
    #define E1000_TEST_LEN sizeof(e1000_gstrings_test) / ETH_GSTRING_LEN
    
    E1000_TEST_LEN*ETH_GSTRING_LEN will expand to
    sizeof(e1000_gstrings_test) / (ETH_GSTRING_LEN * ETH_GSTRING_LEN)
    
    A lack of parentheses around defines causes unexpected results due to
    operator precedences.
    
    Signed-off-by: Roel Kluin <12o3l@tiscali.nl>
    Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
    Signed-off-by: Jeff Garzik <jeff@garzik.org>
---
 drivers/net/e1000/e1000_ethtool.c |    2 +-
 drivers/net/e1000e/ethtool.c      |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/e1000/e1000_ethtool.c b/drivers/net/e1000/e1000_ethtool.c
index 667f18b..b83ccce 100644
--- a/drivers/net/e1000/e1000_ethtool.c
+++ b/drivers/net/e1000/e1000_ethtool.c
@@ -1923,7 +1923,7 @@ e1000_get_strings(struct net_device *netdev, uint32_t stringset, uint8_t *data)
 	switch (stringset) {
 	case ETH_SS_TEST:
 		memcpy(data, *e1000_gstrings_test,
-			E1000_TEST_LEN*ETH_GSTRING_LEN);
+			sizeof(e1000_gstrings_test));
 		break;
 	case ETH_SS_STATS:
 		for (i = 0; i < E1000_GLOBAL_STATS_LEN; i++) {
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c
index 6a39784..87f9da1 100644
--- a/drivers/net/e1000e/ethtool.c
+++ b/drivers/net/e1000e/ethtool.c
@@ -1739,7 +1739,7 @@ static void e1000_get_strings(struct net_device *netdev, u32 stringset,
 	switch (stringset) {
 	case ETH_SS_TEST:
 		memcpy(data, *e1000_gstrings_test,
-			E1000_TEST_LEN*ETH_GSTRING_LEN);
+			sizeof(e1000_gstrings_test));
 		break;
 	case ETH_SS_STATS:
 		for (i = 0; i < E1000_GLOBAL_STATS_LEN; i++) {
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
e1000: fix memcpy in e1000_get_strings, Linux Kernel Mailing List..., (Fri Dec 7, 5:59 pm)