[U-Boot] spl: fix the new position of gd and stack

Donglin Peng dolinux.peng at gmail.com
Wed Oct 24 04:42:19 UTC 2018


If we enable CONFIG_SPL_SYS_MALLOC_SIMPLE and set
CONFIG_SPL_STACK_R_MALLOC_SIMPLE_LEN, the new gd
and stack will inside malloc area,so there is a overwrite risk.

We can place the new position of gd and stack under the malloc
area to fix this issue.

Signed-off-by: Peng Donglin <dolinux.peng at gmail.com>
---
 common/spl/spl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/common/spl/spl.c b/common/spl/spl.c
index 292e659c9a..e85a153869 100644
--- a/common/spl/spl.c
+++ b/common/spl/spl.c
@@ -628,7 +628,7 @@ ulong spl_relocate_stack_gd(void)
     }
 #endif
     /* Get stack position: use 8-byte alignment for ABI compliance */
-    ptr = CONFIG_SPL_STACK_R_ADDR - roundup(sizeof(gd_t),16);
+    ptr -= roundup(sizeof(gd_t), 16);
     new_gd = (gd_t *)ptr;
     memcpy(new_gd, (void *)gd, sizeof(gd_t));
 #if CONFIG_IS_ENABLED(DM)
-- 
2.17.1


More information about the U-Boot mailing list