From: Stephen Warren Date: Fri, 7 Sep 2012 09:15:33 +0000 (+0000) Subject: env_nand: fix incorrect size parameter to ALLOC_CACHE_ALIGN_BUFFER X-Git-Tag: v2012.10-rc1~30 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=78b2de802f5f996d1e6d9383d1e05194351c429b;p=oweals%2Fu-boot.git 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 Signed-off-by: Stephen Warren Reported-by: Prabhakar Lad --- 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;