qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [6151] Fix qemu endless loop when raising a SIGSEGV/ SIGBUS


From: Aurelien Jarno
Subject: [Qemu-devel] [6151] Fix qemu endless loop when raising a SIGSEGV/ SIGBUS signal with gdbstub in user emulation
Date: Sat, 03 Jan 2009 13:14:52 +0000

Revision: 6151
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6151
Author:   aurel32
Date:     2009-01-03 13:14:52 +0000 (Sat, 03 Jan 2009)

Log Message:
-----------
Fix qemu endless loop when raising a SIGSEGV/SIGBUS signal with gdbstub in user 
emulation

When a SIGSEGV signal is raised in user mode emulation the current
test to know whether the signal is sent by the kernel is wrong :

info->si_code == SI_KERNEL

according to /usr/include/bits/siginfo.h it should be

info->si_code > 0

Signed-off-by: Lionel Landwerlin <address@hidden>
Signed-off-by: Aurelien Jarno <address@hidden>

Modified Paths:
--------------
    trunk/linux-user/signal.c

Modified: trunk/linux-user/signal.c
===================================================================
--- trunk/linux-user/signal.c   2009-01-03 12:36:05 UTC (rev 6150)
+++ trunk/linux-user/signal.c   2009-01-03 13:14:52 UTC (rev 6151)
@@ -441,9 +441,9 @@
     target_siginfo_t tinfo;
 
     /* the CPU emulator uses some host signals to detect exceptions,
-       we we forward to it some signals */
+       we forward to it some signals */
     if ((host_signum == SIGSEGV || host_signum == SIGBUS)
-        && info->si_code == SI_KERNEL) {
+        && info->si_code > 0) {
         if (cpu_signal_handler(host_signum, info, puc))
             return;
     }






reply via email to

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