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>
This commit is contained in:
parent
535c74f80c
commit
78b2de802f
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user