[U-Boot] env: fix potential stack overflow in environment functions

Wolfgang Denk wd at denx.de
Fri Apr 5 19:13:22 CEST 2013


Dear Rob,

In message <515EFE6F.1020609 at gmail.com> you wrote:
>
> > In addition to commit 60d7d5a "env: fix potential stack overflow in
> > environment functions" discussed here, I think we should also revert
> > commit fcfa696 "ARM: increase lmb stack space reservation to 4KB"
> > because it is conceptually broken and just papers over the real
> > problems.
> 
> Doing so will randomly break any system with a large command or print
> buffer. For extra fun, it is dependent on the initrd or dtb image size
> in terms of remainder of 4KB multiple.

Well, yes, but that's because the LMB code makes unjustified
assumptions about the memory usage, so it needs to be fixed there.

> It is exactly the same code as PPC. It you look at the git history, PPC
> made exactly the same change (1 to 4KB increase) around the same time
> all the FDT boot code got copied from PPC to ARM. So ARM missed this change.

Thanks for pointing out.  This adds commit 3882d7a "ppc: unused memory
region too close to current stack pointer" to the list of patches that
should bne reverted.

> If the stack is all of RAM, then what address should the initrd and dtb
> be copied to?

Why do they have to be copied at all?  Why cannot they remain where
they have been loaded in the firtst place?  The memcpy just costs time,
which is a precious resource.  Leave it to the user to find a
reasonable location in RAM where he loads the data, and don't mess
with it.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"We shall reach greater and greater platitudes of achievement."
- Richard J. Daley


More information about the U-Boot mailing list