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

Shinya Kuribayashi skuribay at ruby.dti.ne.jp
Mon Nov 19 16:39:49 CET 2007


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 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;
>>  
>>
>>   
> 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





More information about the U-Boot mailing list