qemu-devel
[Top][All Lists]
Advanced

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

RE: [PATCH] Handling SIGSETXID used by glibc NPTL setuid/setgid


From: Matus Kysel
Subject: RE: [PATCH] Handling SIGSETXID used by glibc NPTL setuid/setgid
Date: Tue, 28 Jan 2020 09:22:19 +0000

Hi all,

It seems my patch was ignore. Ping!
 
https://patchew.org/QEMU/address@hidden/

-----Original Message-----
From: Matus Kysel <address@hidden> 
Sent: štvrtok 16. januára 2020 12:57
Cc: Matus Kysel <address@hidden>; Riku Voipio <address@hidden>; Laurent Vivier 
<address@hidden>; open list:All patches CC here <address@hidden>
Subject: [PATCH] Handling SIGSETXID used by glibc NPTL setuid/setgid

Used same style to handle another glibc reserved signal SIGSETXID (33), that is 
used by glibc NPTL setuid/setgid functions. This should fix problems with 
application using those functions and failing with error 
"qemu:handle_cpu_signal received signal outside vCPU context".

Signed-off-by: Matus Kysel <address@hidden>
---
 linux-user/signal.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/linux-user/signal.c b/linux-user/signal.c index 
0128bde4d2..c59221fd0a 100644
--- a/linux-user/signal.c
+++ b/linux-user/signal.c
@@ -66,11 +66,16 @@ static uint8_t host_to_target_signal_table[_NSIG] = {
     [SIGPWR] = TARGET_SIGPWR,
     [SIGSYS] = TARGET_SIGSYS,
     /* next signals stay the same */
-    /* Nasty hack: Reverse SIGRTMIN and SIGRTMAX to avoid overlap with
-       host libpthread signals.  This assumes no one actually uses SIGRTMAX :-/
-       To fix this properly we need to do manual signal delivery multiplexed
-       over a single host signal.  */
+    /*
+     * Nasty hack: Swap SIGRTMIN and SIGRTMIN + 1 with SIGRTMAX and SIGRTMAX - 
1
+     * to avoid overlap with host libpthread (NPTL glibc) signals.
+     * This assumes no one actually uses SIGRTMAX and SIGRTMAX - 1 :-/
+     * To fix this properly we need to do manual signal delivery multiplexed
+     * over a single host signal.
+     */
     [__SIGRTMIN] = __SIGRTMAX,
+    [__SIGRTMIN + 1] = __SIGRTMAX - 1,
+    [__SIGRTMAX - 1] = __SIGRTMIN + 1,
     [__SIGRTMAX] = __SIGRTMIN,
 };
 static uint8_t target_to_host_signal_table[_NSIG];
--
2.17.1




reply via email to

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