From: Jeremy Fitzhardinge Date: Tue, 16 Mar 2004 22:07:12 +0000 (+0000) Subject: Init the per-thread sigaltstacks properly. New threads should always X-Git-Tag: svn/VALGRIND_2_1_2~174 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=77403e63a0bf55d260018cda51b119974ce14fea;p=thirdparty%2Fvalgrind.git Init the per-thread sigaltstacks properly. New threads should always appear without a sigaltstack. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2331 --- diff --git a/coregrind/vg_scheduler.c b/coregrind/vg_scheduler.c index dd604da8c4..0ec739c4c3 100644 --- a/coregrind/vg_scheduler.c +++ b/coregrind/vg_scheduler.c @@ -574,6 +574,11 @@ void mostly_clear_thread_record ( ThreadId tid ) VG_(threads)[tid].sys_pre_res = NULL; VG_(threads)[tid].proxy = NULL; + + /* start with no altstack */ + VG_(threads)[tid].altstack.ss_sp = (void *)0xdeadbeef; + VG_(threads)[tid].altstack.ss_size = 0; + VG_(threads)[tid].altstack.ss_flags = VKI_SS_DISABLE; } diff --git a/coregrind/vg_signals.c b/coregrind/vg_signals.c index 08a355feba..b178bebc7b 100644 --- a/coregrind/vg_signals.c +++ b/coregrind/vg_signals.c @@ -2391,10 +2391,6 @@ void VG_(sigstartup_actions) ( void ) vg_scss.scss_per_sig[VKI_SIGVGKILL].scss_flags = VKI_SA_SIGINFO; VG_(ksigfillset)(&vg_scss.scss_per_sig[VKI_SIGVGKILL].scss_mask); - /* Copy the alt stack, if any. */ - ret = VG_(ksigaltstack)(NULL, &VG_(threads)[1].altstack); - vg_assert(ret == 0); - /* Copy the process' signal mask into the root thread. */ vg_assert(VG_(threads)[1].status == VgTs_Runnable); VG_(threads)[1].sig_mask = saved_procmask;