diff options
author | Peng Fan <peng.fan@nxp.com> | 2016-01-12 17:23:12 +0800 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-01-13 21:05:26 -0500 |
commit | db18f548cb7b5ff99223b66eac1966eb45230817 (patch) | |
tree | 4b1088d7ea6775ffb31b359463f1a9423710a8ad /common/env_flags.c | |
parent | bb08a6e7d513cc1f591b35a6e7e68dd92078eed6 (diff) |
common: env_flags: fix loop condition when using env_flags_varaccess_mask
We should use ARRAY_SIZE, but not sizeof. The size of
env_flags_varaccess_mask is 16bytes, but we only need 4 loops.
If using 16 as the end condition, we may access memory that
not belong to array env_flags_varaccess_mask.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Cc: Joe Hershberger <joe.hershberger@ni.com>
Cc: York Sun <yorksun@freescale.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Diffstat (limited to 'common/env_flags.c')
-rw-r--r-- | common/env_flags.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/common/env_flags.c b/common/env_flags.c index 771935508cb..9c3aed15278 100644 --- a/common/env_flags.c +++ b/common/env_flags.c @@ -152,7 +152,7 @@ enum env_flags_varaccess env_flags_parse_varaccess_from_binflags(int binflags) { int i; - for (i = 0; i < sizeof(env_flags_varaccess_mask); i++) + for (i = 0; i < ARRAY_SIZE(env_flags_varaccess_mask); i++) if (env_flags_varaccess_mask[i] == (binflags & ENV_FLAGS_VARACCESS_BIN_MASK)) return (enum env_flags_varaccess)i; |