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

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@cnt.mxe.nes.nec.co.jp Signed-off-by: Shinya Kuribayashi shinya.kuribayashi@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 wrote:
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@cnt.mxe.nes.nec.co.jp Signed-off-by: Shinya Kuribayashi shinya.kuribayashi@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;
This looks harmless enough, but is in a place that is touched by every board on every architecture, and the bug doesn't really seem to hurt anything other than printing garbage. IMHO it should wait until the next release. I will apply it to a 'for_1.3.1' branch of the net tree.
regards, Ben

Ben Warren wrote:
Shinya Kuribayashi wrote:
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@cnt.mxe.nes.nec.co.jp Signed-off-by: Shinya Kuribayashi shinya.kuribayashi@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;
This looks harmless enough, but is in a place that is touched by every board on every architecture, and the bug doesn't really seem to hurt anything other than printing garbage. IMHO it should wait until the next release. I will apply it to a 'for_1.3.1' branch of the net tree.
Ok, I'm afraid I have to wait. Thanks for your comment,
Shinya
participants (3)
-
Ben Warren
-
Shinya Kuribayashi
-
Shinya Kuribayashi