[U-Boot] [U-Boot, 1/6] dlmalloc: ensure gd is set for early alloc

Tom Rini trini at ti.com
Mon Nov 10 22:26:47 CET 2014


On Wed, Oct 29, 2014 at 11:21:37PM +0100, Rabin Vincent wrote:

> Attempting to run the sandbox leads to a segfault, because some dynamic
> libraries (outside of u-boot) attempt to use malloc() to allocate memory
> before u-boot's gd variable is initialized.
> 
> Check for gd not being NULL in the SYS_MALLOC_F_LEN handling, so that
> malloc() doesn't crash when called at this point.
> 
>  $ gdb -q --args ./u-boot
>  (gdb) r
>  Program received signal SIGSEGV, Segmentation fault.
>  0x0000000000412b9b in malloc (bytes=bytes at entry=37) at common/dlmalloc.c:2184
>  2184		if (!(gd->flags & GD_FLG_RELOC)) {
>  (gdb) p gd
>  $1 = (gd_t *) 0x0
>  (gdb) bt
>  #0  0x0000000000412b9b in malloc (bytes=bytes at entry=37) at common/dlmalloc.c:2184
>  #1  0x00007ffff75bf8e1 in set_binding_values (domainname=0x7ffff11f4f12 "libgpg-error", dirnamep=0x7fffffffe168, codesetp=0x0)
>      at bindtextdom.c:228
>  #2  0x00007ffff75bfb4c in set_binding_values (codesetp=0x0, dirnamep=0x7fffffffe168, domainname=<optimized out>) at bindtextdom.c:350
>  #3  __bindtextdomain (domainname=<optimized out>, dirname=0x7ffff11f4f00 "/usr/share/locale") at bindtextdom.c:348
>  #4  0x00007ffff11eca17 in ?? () from /lib/x86_64-linux-gnu/libgpg-error.so.0
>  #5  0x00007ffff7dea9fa in call_init (l=<optimized out>, argc=argc at entry=1, argv=argv at entry=0x7fffffffe208,
>      env=env at entry=0x7fffffffe218) at dl-init.c:78
>  #6  0x00007ffff7deaae3 in call_init (env=0x7fffffffe218, argv=0x7fffffffe208, argc=1, l=<optimized out>) at dl-init.c:36
>  #7  _dl_init (main_map=0x7ffff7ffe1a8, argc=1, argv=0x7fffffffe208, env=0x7fffffffe218) at dl-init.c:126
>  #8  0x00007ffff7ddd1ca in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
> 
> Signed-off-by: Rabin Vincent <rabin at rab.in>
> Acked-by: Simon Glass <sjg at chromium.org>

Applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20141110/72127b2f/attachment.pgp>


More information about the U-Boot mailing list