diff options
author | Stephen Warren <swarren@nvidia.com> | 2012-09-07 09:15:33 +0000 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2012-09-18 12:01:51 -0700 |
commit | 78b2de802f5f996d1e6d9383d1e05194351c429b (patch) | |
tree | f425b0cbb63769796c514279247bd2d8c0cb6a22 /common/env_nand.c | |
parent | 535c74f80cb9eff0fa66ce750fc7fc8a8539635c (diff) | |
download | u-boot-78b2de802f5f996d1e6d9383d1e05194351c429b.tar.gz u-boot-78b2de802f5f996d1e6d9383d1e05194351c429b.tar.bz2 u-boot-78b2de802f5f996d1e6d9383d1e05194351c429b.zip |
env_nand: fix incorrect size parameter to ALLOC_CACHE_ALIGN_BUFFER
The third parameter to ALLOC_CACHE_ALIGN_BUFFER is not size (as named),
but rather count (number of elements of the type to allocate). The
current code ends up allocating one copy of env_t for each byte in its
size, which quite possibly ends up overflowing RAM.
This fixes a bug in commit 3801a15 "env_nand: align NAND buffers".
Reported-by: Prabhakar Lad <prabhakar.csengg@gmail.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reported-by: Prabhakar Lad <prabhakar.lad@ti.com>
Diffstat (limited to 'common/env_nand.c')
-rw-r--r-- | common/env_nand.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/common/env_nand.c b/common/env_nand.c index e6354728fb..79e8033705 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -226,7 +226,7 @@ int saveenv(void) int saveenv(void) { int ret = 0; - ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, sizeof(env_t)); + ALLOC_CACHE_ALIGN_BUFFER(env_t, env_new, 1); ssize_t len; char *res; nand_erase_options_t nand_erase_options; |