[U-Boot] [PATCH] common: nvedit to protect additional ethernet addresses Part 1/1

Ben Warren
2008-12-07T05:47:31Z

Jerry Van Baren wrote:
> Wolfgang Denk wrote:
>
>> Dear Stefan Althoefer,
>>
>> In message <ghc625$k37$1@ger.gmane.org> you wrote:
>>
>>> This patches cmd_nvedit to reject changes for "ethaddr." in addition to "ethaddr"
>>> and "serial#". This is intendend to protect changes to additional ethernet
>>> addresses (e.g. "ethernet1").
>>>
>> The patch is bogus, as additional ethernet addrssses are eth1addr,
>> eth2addr, etc. and not ethaddr1, etc.
>>
>>
>> Also, please don't remove perfectly god comments.
>>
>> NAK.
>>
>> Best regards,
>>
>> Wolfgang Denk
>>
>
> Arrgh, I was thinking I was so clever with strncmp() and it turns out I
> was being clever based on a totally bogus assumption (wrong format).
> :-( I *hate* it when that happens.
>
>
Uh yeah, I wasn't as clever as you by half, but definitely as bogus :)
It's good to know Wolfgang has such keen eyes.
> The following should work for eth[0-9]+addr (untested):
>
> int ethnum;
> :
> :
> /* "eth[0-9]+addr" is always protected */
> if ((sscanf(name, "eth%daddr", &ethnum) == 1) &&
> (ethnum < MAX_ETH_ADDRS))
> protected = 1;
>
> Notes:
> * The "ethaddr" case is handled prior to the above snippet of code.
> * I took out the added check "if (strlen (name) == 8)", I'm not sure why
> that was in there, it would limit us to 10 ethernets. If extra
> validation is desired, ethnum could be checked to be less than
> MAX_ETH_ADDRS. On reflection, it seems like a good idea so I added it
> above.
> * This is somewhat better than the strncmp() trick because the sscanf()
> will only convert digits.
>
>
Neat, although it's very tempting to pull a Python 3 and say "screw
reverse compatibility" and change this naming convention.
> gvb
> _________________________

regards,
Ben