summaryrefslogtreecommitdiff
path: root/common/env_nand.c
diff options
context:
space:
mode:
authorStephen Warren <swarren@nvidia.com>2012-09-07 09:15:33 +0000
committerTom Rini <trini@ti.com>2012-09-18 12:01:51 -0700
commit78b2de802f5f996d1e6d9383d1e05194351c429b (patch)
treef425b0cbb63769796c514279247bd2d8c0cb6a22 /common/env_nand.c
parent535c74f80cb9eff0fa66ce750fc7fc8a8539635c (diff)
downloadu-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.c2
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;