[BUG] sandbox_defconfig u-boot -T crashes

Simon Glass sjg at chromium.org
Wed Sep 20 23:55:23 CEST 2023


Hi Heinrich,

On Wed, 20 Sept 2023 at 10:01, Heinrich Schuchardt <xypron.glpk at gmx.de> wrote:
>
> Hello Simon,
>
> I have built sandbox_defconfig using origin/master
> (b9b83a86f0e8 ("Merge branch 'master' of
> https://source.denx.de/u-boot/custodians/u-boot-sh"))
> on Ubuntu 23.10.
>
> Running ./u-boot -T leads to a crash:
>
> #9  0x00007ffff7a28189 in __libc_start_main_impl (main=0x555555591540
> <main>, argc=2, argv=0x7fffffffd918, init=<optimized out>,
> fini=<optimized out>, rtld_fini=<optimized out>,
>      stack_end=0x7fffffffd908) at ../csu/libc-start.c:360
> 360     in ../csu/libc-start.c
> (gdb)
> #8  0x00007ffff7a280d0 in __libc_start_call_main
> (main=main at entry=0x555555591540 <main>, argc=argc at entry=2,
> argv=argv at entry=0x7fffffffd918)
>      at ../sysdeps/nptl/libc_start_call_main.h:58
> 58      ../sysdeps/nptl/libc_start_call_main.h: No such file or directory.
> (gdb)
> #7  0x0000555555591e19 in sandbox_main (argc=2, argv=0x7fffffffd918) at
> arch/sandbox/cpu/start.c:557
> 557             board_init_r(gd->new_gd, 0);
> (gdb)
> #6  board_init_r (new_gd=<optimized out>, dest_addr=dest_addr at entry=0)
> at common/board_r.c:818
> 818             if (initcall_run_list(init_sequence_r))
> (gdb)
> #5  0x00005555555d961e in initcall_run_list
> (init_sequence=0x5555558e1860 <init_sequence_r>) at include/initcall.h:46
> 46                      ret = (*init_fnc_ptr)();
> (gdb)
> #4  0x00005555555e695d in stdio_add_devices () at common/stdio.c:332
> 332                     for (ret =
> uclass_first_device_check(UCLASS_KEYBOARD, &dev);
> (gdb)
> #3  0x00005555555f9e4f in uclass_first_device_check (devp=<optimized
> out>, id=UCLASS_KEYBOARD) at drivers/core/uclass.c:644
> 644             return device_probe(*devp);
> (gdb)
> #2  0x00005555555f7235 in device_probe (dev=0x1ac9c800) at
> drivers/core/device.c:583
>
> 583                     ret = drv->probe(dev);
> (gdb)
> #1  0x000055555560ae09 in input_stdio_register (dev=0x1aead870) at
> drivers/input/input.c:674
> 674             if (!error && strcmp(env_get("stdin"), dev->name) == 0) {
> (gdb)
> #0  strcmp (cs=0x1 <error: Cannot access memory at address 0x1>,
> ct=0x1aead879 "ros-ec-keyb", ct at entry=0x1aead878 "cros-ec-keyb") at
> lib/string.c:217
> 217                     ret = a - b;
>
>
> env_get("stdin") returns NULL here and should not be used without checking.

Something else is wrong though, since env_get() should return the
correct value here, not NULL.

Regards,
Simon


More information about the U-Boot mailing list