]> git.sur5r.net Git - u-boot/blobdiff - cmd/itest.c
Merge branch 'master' of git://git.denx.de/u-boot-sh
[u-boot] / cmd / itest.c
index 60626c7fe9c3d983d247aeee6f89b76548a189b5..fd6f4166f16cf1dad96a681892ce5f96b3fc0352 100644 (file)
@@ -1,8 +1,7 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2003
  * Tait Electronics Limited, Christchurch, New Zealand
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 /*
@@ -80,7 +79,8 @@ static long evalexp(char *s, int w)
                l = simple_strtoul(s, NULL, 16);
        }
 
-       return l & ((1UL << (w * 8)) - 1);
+       /* avoid overflow on mask calculus */
+       return (w >= sizeof(long)) ? l : (l & ((1UL << (w * 8)) - 1));
 }
 
 static char * evalstr(char *s)
@@ -100,7 +100,7 @@ static char * evalstr(char *s)
                        i++;
                }
                s[i] = 0;
-               return  getenv((const char *)&s[2]);
+               return  env_get((const char *)&s[2]);
        } else {
                return s;
        }