#DPATCHLEVEL=0 --- # linux-user/signal.c | 7 ++++++- # 1 file changed, 6 insertions(+), 1 deletion(-) # Index: linux-user/signal.c =================================================================== --- linux-user/signal.c.orig 2007-06-13 11:51:52.000000000 +0100 +++ linux-user/signal.c 2007-06-13 11:52:21.000000000 +0100 @@ -341,10 +341,15 @@ int queue_signal(int sig, target_siginfo 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 */