qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 1918302] Re: qemu-system-arm segfaults while servicing SYS_HEAPINFO


From: Simon Tatham
Subject: [Bug 1918302] Re: qemu-system-arm segfaults while servicing SYS_HEAPINFO
Date: Thu, 25 Mar 2021 15:49:18 -0000

Yes, fair enough. I suppose what I meant was that that particular part
of the startup code was *regarding* SP as being uninitialised: it didn't
read it, or use it, or set it on purpose to any kind of interim temp
value before calling SYS_HEAPINFO.

It's true, of course, that this particular image does include an
M-profile vector table that sets sp = 0x20004000 at startup. But the
code (from newlib startup) that calls SYS_HEAPINFO is apparently
intended to be generic enough not to depend on that, so in a different
context, it might perfectly well be run with total nonsense in sp and
expect to be able to get away with not doing anything about that until
it gets back a more sensible value from semihosting.

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1918302

Title:
  qemu-system-arm segfaults while servicing SYS_HEAPINFO

Status in QEMU:
  Fix Committed

Bug description:
  I compiled QEMU version 5.2.0 from source on Ubuntu 18.04, and tried
  to use it to run the attached bare-metal Arm hello-world image, using
  the command line

  qemu-system-arm -M microbit -semihosting -nographic -device
  loader,file=hello.hex

  The result was that qemu-system-arm itself died of a segfault.
  Compiling it for debugging, the location of the segfault was in
  target/arm/arm-semi.c, in the case handler for the semihosting call
  TARGET_SYS_HEAPINFO, on line 1020 which assigns to 'rambase':

              const struct arm_boot_info *info = env->boot_info;
              target_ulong rambase = info->loader_start;

  and the problem seems to be that 'info', aka env->boot_info, is NULL
  in this context.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1918302/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]