From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: Peter Maydell <peter.maydell@linaro.org>,
Riku Voipio <riku.voipio@linaro.org>,
qemu-stable@nongnu.org
Subject: [Qemu-devel] [PATCH 29/43] linux-user: Fix broken m68k signal handling on 64 bit hosts
Date: Tue, 24 Feb 2015 15:48:04 -0600 [thread overview]
Message-ID: <1424814498-6993-30-git-send-email-mdroth@linux.vnet.ibm.com> (raw)
In-Reply-To: <1424814498-6993-1-git-send-email-mdroth@linux.vnet.ibm.com>
From: Peter Maydell <peter.maydell@linaro.org>
The m68k signal frame setup code which writes the signal return
trampoline code to the stack was assuming that a 'long' was 32 bits;
on 64 bit systems this meant we would end up writing the 32 bit
(2 insn) trampoline sequence to retaddr+4,retaddr+6 instead of
the intended retaddr+0,retaddr+2, resulting in a guest crash when
it tried to execute the invalid zero-bytes at retaddr+0.
Fix by using uint32_t instead; also use uint16_t rather than short
for consistency. This fixes bug LP:1404690.
Reported-by: Michel Boaventura
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
(cherry picked from commit 1669add752d9f29283f8ebf6a863d7b1e2d0f146)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
linux-user/signal.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/linux-user/signal.c b/linux-user/signal.c
index e11b208..a324fd1 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -5091,7 +5091,7 @@ static void setup_frame(int sig, struct target_sigaction *ka,
/* moveq #,d0; trap #0 */
__put_user(0x70004e40 + (TARGET_NR_sigreturn << 16),
- (long *)(frame->retcode));
+ (uint32_t *)(frame->retcode));
/* Set up to return from userspace */
@@ -5225,8 +5225,8 @@ static void setup_rt_frame(int sig, struct target_sigaction *ka,
/* moveq #,d0; notb d0; trap #0 */
__put_user(0x70004600 + ((TARGET_NR_rt_sigreturn ^ 0xff) << 16),
- (long *)(frame->retcode + 0));
- __put_user(0x4e40, (short *)(frame->retcode + 4));
+ (uint32_t *)(frame->retcode + 0));
+ __put_user(0x4e40, (uint16_t *)(frame->retcode + 4));
if (err)
goto give_sigsegv;
--
1.9.1
next prev parent reply other threads:[~2015-02-24 21:52 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-24 21:47 [Qemu-devel] Patch Round-up for stable 2.2.1, freeze on 2015-03-05 Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 01/43] block: Make essential BlockDriver objects public Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 02/43] block: Omit bdrv_find_format for essential drivers Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 03/43] block/vvfat: qcow driver may not be found Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 04/43] block/nfs: Add create_opts Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 05/43] block: Check create_opts before image creation Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 06/43] qemu-img: " Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 07/43] qemu-img: Check create_opts before image amendment Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 08/43] iotests: Only kill NBD server if it runs Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 09/43] iotests: Add test for unsupported image creation Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 10/43] qcow2: Prevent numerical overflow Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 11/43] qcow2: Flushing the caches in qcow2_close may fail Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 12/43] qcow2: Respect bdrv_truncate() error Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 13/43] block/raw-posix: Fix ret in raw_open_common() Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 14/43] block migration: fix return value Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 15/43] qcow2: Fix header extension size check Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 16/43] qcow2.py: Add required padding for header extensions Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 17/43] block: Don't probe for unknown backing file format Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 18/43] linuxboot: fix loading old kernels Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 19/43] audio: Don't free hw resources until after hw backend is stopped Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 20/43] target-xtensa: fix translation for opcodes crossing page boundary Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 21/43] target-xtensa: test cross-page opcode Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 22/43] migration/block: fix pending() return value Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 23/43] atomic: fix position of volatile qualifier Michael Roth
2015-02-24 21:47 ` [Qemu-devel] [PATCH 24/43] PPC: Fix crash on spapr_tce_table_finalize() Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 25/43] vl.c: fix regression when reading machine type from config file Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 26/43] serial: reset thri_pending on IER writes with THRI=0 Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 27/43] serial: refine serial_thr_ipending_needed Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 28/43] pckbd: set bits 2-3-6-7 of the output port by default Michael Roth
2015-02-24 21:48 ` Michael Roth [this message]
2015-02-25 8:39 ` [Qemu-devel] [PATCH 29/43] linux-user: Fix broken m68k signal handling on 64 bit hosts Laurent Vivier
2015-02-25 11:28 ` Peter Maydell
2015-02-25 11:58 ` Laurent Vivier
2015-02-25 12:14 ` Peter Maydell
2015-02-24 21:48 ` [Qemu-devel] [PATCH 30/43] scsi: fix cancellation when I/O was completed but DMA was not Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 31/43] target-i386: fix movntsd on big-endian hosts Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 32/43] vt82c686: avoid out-of-bounds read Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 33/43] virtio: fix feature bit checks Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 34/43] sb16: fix interrupt acknowledgement Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 35/43] hw/input/hid.c Fix capslock hid code Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 36/43] target-arm/translate-a64: Fix wrong mmu_idx usage for LDT/STT Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 37/43] vfio-pci: Fix missing unparent of dynamically allocated MemoryRegion Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 38/43] qemu-thread: fix qemu_event without futexes Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 39/43] libcacard: stop linking against every single 3rd party library Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 40/43] fix mc146818rtc wrong subsection name to avoid vmstate_subsection_load() fail Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 41/43] block/iscsi: fix uninitialized variable Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 42/43] qtest: Fix deadloop by running main loop AIO context's timers Michael Roth
2015-02-24 21:48 ` [Qemu-devel] [PATCH 43/43] exec: change default exception_index value for migration to -1 Michael Roth
2015-02-25 2:51 ` [Qemu-devel] [Qemu-stable] Patch Round-up for stable 2.2.1, freeze on 2015-03-05 Gonglei (Arei)
2015-02-25 9:33 ` [Qemu-devel] " Leon Alrae
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1424814498-6993-30-git-send-email-mdroth@linux.vnet.ibm.com \
--to=mdroth@linux.vnet.ibm.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@nongnu.org \
--cc=riku.voipio@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).