ruby-changes:19479
From: yugui <ko1@a...>
Date: Thu, 12 May 2011 06:27:06 +0900 (JST)
Subject: [ruby-changes:19479] Ruby:r31519 (ruby_1_9_2): merges r30919 from trunk into ruby_1_9_2.
yugui 2011-05-12 06:23:58 +0900 (Thu, 12 May 2011) New Revision: 31519 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=31519 Log: merges r30919 from trunk into ruby_1_9_2. -- * signal.c (sig_trap): avoid pthread_sigmask(xx, &mask, &mask) usage because FreeBSD don't permit it. If it's used, it behave as pthread_sigmask(xx, NULL, &mask). * signal.c (init_sigchld): ditto. Modified files: branches/ruby_1_9_2/ChangeLog branches/ruby_1_9_2/signal.c branches/ruby_1_9_2/version.h Index: ruby_1_9_2/ChangeLog =================================================================== --- ruby_1_9_2/ChangeLog (revision 31518) +++ ruby_1_9_2/ChangeLog (revision 31519) @@ -1,3 +1,11 @@ +Sun Feb 20 02:14:09 2011 KOSAKI Motohiro <kosaki.motohiro@g...> + + * signal.c (sig_trap): avoid pthread_sigmask(xx, &mask, &mask) usage + because FreeBSD don't permit it. If it's used, it behave as + pthread_sigmask(xx, NULL, &mask). + + * signal.c (init_sigchld): ditto. + Sat Feb 19 22:37:42 2011 CHIKANAGA Tomoyuki <nagachika00@g...> * vm_insnhelper.c (vm_check_if_namespace): guard temporary object Index: ruby_1_9_2/version.h =================================================================== --- ruby_1_9_2/version.h (revision 31518) +++ ruby_1_9_2/version.h (revision 31519) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.2" -#define RUBY_PATCHLEVEL 203 +#define RUBY_PATCHLEVEL 204 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 Index: ruby_1_9_2/signal.c =================================================================== --- ruby_1_9_2/signal.c (revision 31518) +++ ruby_1_9_2/signal.c (revision 31519) @@ -953,11 +953,15 @@ rb_raise(rb_eSecurityError, "Insecure: tainted signal trap"); } #if USE_TRAP_MASK - /* disable interrupt */ - sigfillset(&arg.mask); - pthread_sigmask(SIG_BLOCK, &arg.mask, &arg.mask); + { + sigset_t fullmask; - return rb_ensure(trap, (VALUE)&arg, trap_ensure, (VALUE)&arg); + /* disable interrupt */ + sigfillset(&fullmask); + pthread_sigmask(SIG_BLOCK, &fullmask, &arg.mask); + + return rb_ensure(trap, (VALUE)&arg, trap_ensure, (VALUE)&arg); + } #else return trap(&arg); #endif @@ -1003,15 +1007,17 @@ #if USE_TRAP_MASK # ifdef HAVE_SIGPROCMASK sigset_t mask; + sigset_t fullmask; # else int mask; + int fullmask; # endif #endif #if USE_TRAP_MASK /* disable interrupt */ - sigfillset(&mask); - pthread_sigmask(SIG_BLOCK, &mask, &mask); + sigfillset(&fullmask); + pthread_sigmask(SIG_BLOCK, &fullmask, &mask); #endif oldfunc = ruby_signal(sig, SIG_DFL); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/