[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]