[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug 1915925] Re: ARM semihosting HEAPINFO results wrote to wrong addres
From: |
Peter Maydell |
Subject: |
[Bug 1915925] Re: ARM semihosting HEAPINFO results wrote to wrong address |
Date: |
Wed, 17 Feb 2021 15:03:05 -0000 |
** Changed in: qemu
Status: New => Confirmed
--
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1915925
Title:
ARM semihosting HEAPINFO results wrote to wrong address
Status in QEMU:
Confirmed
Bug description:
This affects latest development branch of QEMU.
According to the ARM spec of the HEAPINFO semihosting call:
https://developer.arm.com/documentation/100863/0300/Semihosting-
operations/SYS-HEAPINFO--0x16-?lang=en
> the PARAMETER REGISTER contains the address of a pointer to a four-
field data block.
However, QEMU treated the PARAMETER REGISTER as pointing to a four-
field data block directly.
Here is a simple program that can demonstrate this problem:
https://github.com/iNvEr7/qemu-learn/tree/newlib-bug/semihosting-
newlib
This code links with newlib with semihosting mode, which will call the
HEAPINFO SVC during crt0 routine. When running in QEMU (make run), it
may crash the program either because of invalid write or memory
curruption, depending on the compiled program structure.
Also refer to my discussion with newlib folks:
https://sourceware.org/pipermail/newlib/2021/018260.html
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1915925/+subscriptions