
stefan.althoefer@web.de wrote:
[PATCH] common: nvedit to protect additional ethernet addresses
This patch adds "ethaddr1" and "ethaddr2" to the protected environment variables that can only be written once.
The patch is against "latest" u-boot git-repository
Please be patient if style of submission or patches are offending.
Signed-off-by: stefan.althoefer@web.de (as@janz.de)
diff -uprN u-boot-orig//common/cmd_nvedit.c u-boot/common/cmd_nvedit.c --- u-boot-orig//common/cmd_nvedit.c 2008-12-02 17:25:31.000000000 +0100 +++ u-boot/common/cmd_nvedit.c 2008-12-02 22:59:36.000000000 +0100 @@ -188,6 +188,8 @@ int _do_setenv (int flag, int argc, char #else (strcmp (name, "serial#") == 0) || #endif
(strcmp (name, "ethaddr1") == 0) ||
((strcmp (name, "ethaddr") == 0)(strcmp (name, "ethaddr2") == 0) ||
#if defined(CONFIG_OVERWRITE_ETHADDR_ONCE) && defined(CONFIG_ETHADDR) && (strcmp ((char *)env_get_addr(oldval),MK_STR(CONFIG_ETHADDR)) != 0)
Would it be better to use "strncmp (name, "ethaddr", 7)" instead of adding all possible enumerations of ethaddr[0-9]*? Using strncmp() will match any ethaddr.* variable (a wider net than ethaddr[0-9]*, but given our limited environment it shouldn't matter).
gvb