20 lines
698 B
Diff
20 lines
698 B
Diff
--- linux-user/signal.c
|
|
+++ linux-user/signal.c
|
|
@@ -341,10 +341,15 @@
|
|
k = &sigact_table[sig - 1];
|
|
handler = k->sa._sa_handler;
|
|
if (handler == TARGET_SIG_DFL) {
|
|
+ if (sig == TARGET_SIGTSTP || sig == TARGET_SIGTTIN || sig == TARGET_SIGTTOU) {
|
|
+ kill(getpid(),SIGSTOP);
|
|
+ return 0;
|
|
+ } else
|
|
/* default handler : ignore some signal. The other are fatal */
|
|
if (sig != TARGET_SIGCHLD &&
|
|
sig != TARGET_SIGURG &&
|
|
- sig != TARGET_SIGWINCH) {
|
|
+ sig != TARGET_SIGWINCH &&
|
|
+ sig != TARGET_SIGCONT) {
|
|
force_sig(sig);
|
|
} else {
|
|
return 0; /* indicate ignored */
|