[U-Boot-Users] [PATCH] net/eth.c: Fix env_enetaddr signed overflow

Shinya Kuribayashi shinya.kuribayashi at necel.com
Mon Nov 19 12:27:04 CET 2007


My colleague founded this problem months ago. I'd like to see this bug
fixed in 1.3.0. Please apply.

---
net/eth.c: Fix env_enetaddr signed overflow

Assigning the output of simple_strtoul(CB:A9:87:65:43:21) to `char', we are
warned as below:

  U-Boot 1.2.0 (Aug 30 2007 - 08:27:37)
  
  DRAM:  256 MB
  Flash: 32 MB
  In:    serial
  Out:   serial
  Err:   serial
  Net:   NEC-Candy
  Warning: NEC-Candy MAC addresses don't match:
  Address in SROM is         00:00:4C:80:92:A2
  Address in environment is  FFFFFFCB:FFFFFFA9:FFFFFF87:65:43:21

This patch changes env_enetaddr type from `char' to `unsigned char'.

Cc: Masaki Ishikawa <ishikawa-masaki at cnt.mxe.nes.nec.co.jp>
Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi at necel.com>
---

 net/eth.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/net/eth.c b/net/eth.c
index 1b56a35..64ef312 100644
--- a/net/eth.c
+++ b/net/eth.c
@@ -138,7 +138,8 @@ int eth_register(struct eth_device* dev)
 
 int eth_initialize(bd_t *bis)
 {
-	char enetvar[32], env_enetaddr[6];
+	char enetvar[32];
+	unsigned char env_enetaddr[6];
 	int i, eth_number = 0;
 	char *tmp, *end;
 

-- 
Shinya Kuribayashi
NEC Electronics




More information about the U-Boot mailing list