23005070 problem in UTILITY/RUBY
authorRich Burridge <rich.burridge@oracle.com>
Thu, 07 Apr 2016 14:59:33 -0700
changeset 5743 195b4d212ec3
parent 5742 6e3092e295a4
child 5744 659a5b9e36ea
23005070 problem in UTILITY/RUBY
components/ruby/ruby-21/patches/13-CVE-2015-7551.patch
components/ruby/ruby-21/test/results-64.master
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/ruby/ruby-21/patches/13-CVE-2015-7551.patch	Thu Apr 07 14:59:33 2016 -0700
@@ -0,0 +1,112 @@
+Patches from upstream to fix CVE-2015-7551.
+
+See:
+
+  https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-7551
+
+for more details.
+
+Based on the ruby 2.1 commit at:
+
+  https://github.com/ruby/ruby/commit/339e11a7f178312d937b7c95dd3115ce7236597a
+
+--- ruby-2.1.6/ext/fiddle/handle.c.orig	2016-04-06 05:46:29.137190481 -0700
++++ ruby-2.1.6/ext/fiddle/handle.c	2016-04-06 06:15:33.342534009 -0700
+@@ -1,6 +1,8 @@
+ #include <ruby.h>
+ #include <fiddle.h>
+ 
++#define SafeStringValueCStr(v) (rb_check_safe_obj(rb_string_value(&v)), StringValueCStr(v))
++
+ VALUE rb_cHandle;
+ 
+ struct dl_handle {
+@@ -143,11 +145,11 @@
+ 	cflag = RTLD_LAZY | RTLD_GLOBAL;
+ 	break;
+       case 1:
+-	clib = NIL_P(lib) ? NULL : StringValuePtr(lib);
++	clib = NIL_P(lib) ? NULL : SafeStringValueCStr(lib);
+ 	cflag = RTLD_LAZY | RTLD_GLOBAL;
+ 	break;
+       case 2:
+-	clib = NIL_P(lib) ? NULL : StringValuePtr(lib);
++	clib = NIL_P(lib) ? NULL : SafeStringValueCStr(lib);
+ 	cflag = NUM2INT(flag);
+ 	break;
+       default:
+@@ -263,7 +265,7 @@
+     return PTR2NUM(fiddle_handle);
+ }
+ 
+-static VALUE fiddle_handle_sym(void *handle, const char *symbol);
++static VALUE fiddle_handle_sym(void *handle, VALUE symbol);
+ 
+ /*
+  * Document-method: sym
+@@ -282,7 +284,7 @@
+ 	rb_raise(rb_eFiddleError, "closed handle");
+     }
+ 
+-    return fiddle_handle_sym(fiddle_handle->ptr, StringValueCStr(sym));
++    return fiddle_handle_sym(fiddle_handle->ptr, sym);
+ }
+ 
+ #ifndef RTLD_NEXT
+@@ -305,11 +307,11 @@
+ static VALUE
+ rb_fiddle_handle_s_sym(VALUE self, VALUE sym)
+ {
+-    return fiddle_handle_sym(RTLD_NEXT, StringValueCStr(sym));
++    return fiddle_handle_sym(RTLD_NEXT, sym);
+ }
+ 
+ static VALUE
+-fiddle_handle_sym(void *handle, const char *name)
++fiddle_handle_sym(void *handle, VALUE symbol)
+ {
+ #if defined(HAVE_DLERROR)
+     const char *err;
+@@ -318,6 +320,7 @@
+ # define CHECK_DLERROR
+ #endif
+     void (*func)();
++    const char *name = SafeStringValueCStr(symbol);
+ 
+     rb_secure(2);
+ #ifdef HAVE_DLERROR
+@@ -367,7 +370,7 @@
+     }
+ #endif
+     if( !func ){
+-	rb_raise(rb_eFiddleError, "unknown symbol \"%s\"", name);
++	rb_raise(rb_eFiddleError, "unknown symbol \"%"PRIsVALUE"\"", symbol);
+     }
+ 
+     return PTR2NUM(func);
+--- ruby-2.1.6/test/fiddle/test_handle.rb.orig	2016-04-06 05:48:53.672048772 -0700
++++ ruby-2.1.6/test/fiddle/test_handle.rb	2016-04-06 05:49:32.100668554 -0700
+@@ -10,6 +10,23 @@
+ 
+     include Test::Unit::Assertions
+ 
++    def test_safe_handle_open
++      t = Thread.new do
++        $SAFE = 1
++        Fiddle::Handle.new(LIBC_SO.taint)
++      end
++      assert_raise(SecurityError) { t.value }
++    end
++
++    def test_safe_function_lookup
++      t = Thread.new do
++        h = Fiddle::Handle.new(LIBC_SO)
++        $SAFE = 1
++        h["qsort".taint]
++      end
++      assert_raise(SecurityError) { t.value }
++    end
++
+     def test_to_i
+       handle = Fiddle::Handle.new(LIBC_SO)
+       assert_kind_of Integer, handle.to_i
--- a/components/ruby/ruby-21/test/results-64.master	Thu Apr 07 13:27:06 2016 -0700
+++ b/components/ruby/ruby-21/test/results-64.master	Thu Apr 07 14:59:33 2016 -0700
@@ -1,4 +1,4 @@
-make[1]: Entering directory `$(@D)'
+make[1]: Entering directory '$(@D)'
 	CC = 
 	LD = 
 	LDSHARED = 
@@ -9,283 +9,283 @@
 	SOLIBS = 
 cc: 
 making enc
-make[2]: Entering directory `$(@D)'
-make[2]: Nothing to be done for `enc'.
-make[2]: Leaving directory `$(@D)'
+make[2]: Entering directory '$(@D)'
+make[2]: Nothing to be done for 'enc'.
+make[2]: Leaving directory '$(@D)'
 making srcs under enc
-make[2]: Entering directory `$(@D)'
-make[2]: Nothing to be done for `srcs'.
-make[2]: Leaving directory `$(@D)'
+make[2]: Entering directory '$(@D)'
+make[2]: Nothing to be done for 'srcs'.
+make[2]: Leaving directory '$(@D)'
 generating transdb.h
 transdb.h unchanged
 making trans
-make[2]: Entering directory `$(@D)'
-make[2]: Nothing to be done for `$(SOURCE_DIR)/enc/trans'.
-make[2]: Leaving directory `$(@D)'
+make[2]: Entering directory '$(@D)'
+make[2]: Nothing to be done for '$(SOURCE_DIR)/enc/trans'.
+make[2]: Leaving directory '$(@D)'
 making encs
-make[2]: Entering directory `$(@D)'
-make[2]: Leaving directory `$(@D)'
+make[2]: Entering directory '$(@D)'
+make[2]: Leaving directory '$(@D)'
 generating makefile exts.mk
 Failed to configure -test-/win32/dln. It will not be installed.
 Failed to configure -test-/win32/dln/empty. It will not be installed.
 Failed to configure -test-/win32/fd_setsize. It will not be installed.
 Failed to configure win32. It will not be installed.
 Failed to configure win32ole. It will not be installed.
-make[2]: Entering directory `$(@D)'
-make[3]: Entering directory `$(@D)/ext/-test-/array/resize'
+make[2]: Entering directory '$(@D)'
+make[3]: Entering directory '$(@D)/ext/-test-/array/resize'
 installing default resize libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/array/resize'
-make[3]: Entering directory `$(@D)/ext/-test-/bignum'
+make[3]: Leaving directory '$(@D)/ext/-test-/array/resize'
+make[3]: Entering directory '$(@D)/ext/-test-/bignum'
 installing default bignum libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/bignum'
-make[3]: Entering directory `$(@D)/ext/-test-/bug-3571'
+make[3]: Leaving directory '$(@D)/ext/-test-/bignum'
+make[3]: Entering directory '$(@D)/ext/-test-/bug-3571'
 installing default bug libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/bug-3571'
-make[3]: Entering directory `$(@D)/ext/-test-/bug-3662'
+make[3]: Leaving directory '$(@D)/ext/-test-/bug-3571'
+make[3]: Entering directory '$(@D)/ext/-test-/bug-3662'
 installing default bug libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/bug-3662'
-make[3]: Entering directory `$(@D)/ext/-test-/bug-5832'
+make[3]: Leaving directory '$(@D)/ext/-test-/bug-3662'
+make[3]: Entering directory '$(@D)/ext/-test-/bug-5832'
 installing default bug libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/bug-5832'
-make[3]: Entering directory `$(@D)/ext/-test-/bug_reporter'
+make[3]: Leaving directory '$(@D)/ext/-test-/bug-5832'
+make[3]: Entering directory '$(@D)/ext/-test-/bug_reporter'
 installing default bug_reporter libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/bug_reporter'
-make[3]: Entering directory `$(@D)/ext/-test-/class'
+make[3]: Leaving directory '$(@D)/ext/-test-/bug_reporter'
+make[3]: Entering directory '$(@D)/ext/-test-/class'
 installing default class libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/class'
-make[3]: Entering directory `$(@D)/ext/-test-/debug'
+make[3]: Leaving directory '$(@D)/ext/-test-/class'
+make[3]: Entering directory '$(@D)/ext/-test-/debug'
 installing default debug libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/debug'
-make[3]: Entering directory `$(@D)/ext/-test-/exception'
+make[3]: Leaving directory '$(@D)/ext/-test-/debug'
+make[3]: Entering directory '$(@D)/ext/-test-/exception'
 installing default exception libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/exception'
-make[3]: Entering directory `$(@D)/ext/-test-/fatal'
+make[3]: Leaving directory '$(@D)/ext/-test-/exception'
+make[3]: Entering directory '$(@D)/ext/-test-/fatal'
 installing default rb_fatal libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/fatal'
-make[3]: Entering directory `$(@D)/ext/-test-/file'
+make[3]: Leaving directory '$(@D)/ext/-test-/fatal'
+make[3]: Entering directory '$(@D)/ext/-test-/file'
 installing default file libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/file'
-make[3]: Entering directory `$(@D)/ext/-test-/funcall'
+make[3]: Leaving directory '$(@D)/ext/-test-/file'
+make[3]: Entering directory '$(@D)/ext/-test-/funcall'
 installing default funcall libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/funcall'
-make[3]: Entering directory `$(@D)/ext/-test-/iter'
+make[3]: Leaving directory '$(@D)/ext/-test-/funcall'
+make[3]: Entering directory '$(@D)/ext/-test-/iter'
 installing default iter libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/iter'
-make[3]: Entering directory `$(@D)/ext/-test-/load/dot.dot'
+make[3]: Leaving directory '$(@D)/ext/-test-/iter'
+make[3]: Entering directory '$(@D)/ext/-test-/load/dot.dot'
 installing default dot.dot libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/load/dot.dot'
-make[3]: Entering directory `$(@D)/ext/-test-/marshal/compat'
+make[3]: Leaving directory '$(@D)/ext/-test-/load/dot.dot'
+make[3]: Entering directory '$(@D)/ext/-test-/marshal/compat'
 installing default compat libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/marshal/compat'
-make[3]: Entering directory `$(@D)/ext/-test-/marshal/usr'
+make[3]: Leaving directory '$(@D)/ext/-test-/marshal/compat'
+make[3]: Entering directory '$(@D)/ext/-test-/marshal/usr'
 installing default usr libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/marshal/usr'
-make[3]: Entering directory `$(@D)/ext/-test-/method'
+make[3]: Leaving directory '$(@D)/ext/-test-/marshal/usr'
+make[3]: Entering directory '$(@D)/ext/-test-/method'
 installing default method libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/method'
-make[3]: Entering directory `$(@D)/ext/-test-/num2int'
+make[3]: Leaving directory '$(@D)/ext/-test-/method'
+make[3]: Entering directory '$(@D)/ext/-test-/num2int'
 installing default num2int libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/num2int'
-make[3]: Entering directory `$(@D)/ext/-test-/old_thread_select'
+make[3]: Leaving directory '$(@D)/ext/-test-/num2int'
+make[3]: Entering directory '$(@D)/ext/-test-/old_thread_select'
 installing default old_thread_select libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/old_thread_select'
-make[3]: Entering directory `$(@D)/ext/-test-/path_to_class'
+make[3]: Leaving directory '$(@D)/ext/-test-/old_thread_select'
+make[3]: Entering directory '$(@D)/ext/-test-/path_to_class'
 installing default path_to_class libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/path_to_class'
-make[3]: Entering directory `$(@D)/ext/-test-/postponed_job'
+make[3]: Leaving directory '$(@D)/ext/-test-/path_to_class'
+make[3]: Entering directory '$(@D)/ext/-test-/postponed_job'
 installing default postponed_job libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/postponed_job'
-make[3]: Entering directory `$(@D)/ext/-test-/printf'
+make[3]: Leaving directory '$(@D)/ext/-test-/postponed_job'
+make[3]: Entering directory '$(@D)/ext/-test-/printf'
 installing default printf libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/printf'
-make[3]: Entering directory `$(@D)/ext/-test-/rational'
+make[3]: Leaving directory '$(@D)/ext/-test-/printf'
+make[3]: Entering directory '$(@D)/ext/-test-/rational'
 installing default rational libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/rational'
-make[3]: Entering directory `$(@D)/ext/-test-/recursion'
+make[3]: Leaving directory '$(@D)/ext/-test-/rational'
+make[3]: Entering directory '$(@D)/ext/-test-/recursion'
 installing default recursion libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/recursion'
-make[3]: Entering directory `$(@D)/ext/-test-/st/numhash'
+make[3]: Leaving directory '$(@D)/ext/-test-/recursion'
+make[3]: Entering directory '$(@D)/ext/-test-/st/numhash'
 installing default numhash libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/st/numhash'
-make[3]: Entering directory `$(@D)/ext/-test-/st/update'
+make[3]: Leaving directory '$(@D)/ext/-test-/st/numhash'
+make[3]: Entering directory '$(@D)/ext/-test-/st/update'
 installing default update libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/st/update'
-make[3]: Entering directory `$(@D)/ext/-test-/string'
+make[3]: Leaving directory '$(@D)/ext/-test-/st/update'
+make[3]: Entering directory '$(@D)/ext/-test-/string'
 installing default string libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/string'
-make[3]: Entering directory `$(@D)/ext/-test-/struct'
+make[3]: Leaving directory '$(@D)/ext/-test-/string'
+make[3]: Entering directory '$(@D)/ext/-test-/struct'
 installing default struct libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/struct'
-make[3]: Entering directory `$(@D)/ext/-test-/symbol'
+make[3]: Leaving directory '$(@D)/ext/-test-/struct'
+make[3]: Entering directory '$(@D)/ext/-test-/symbol'
 installing default symbol libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/symbol'
-make[3]: Entering directory `$(@D)/ext/-test-/tracepoint'
+make[3]: Leaving directory '$(@D)/ext/-test-/symbol'
+make[3]: Entering directory '$(@D)/ext/-test-/tracepoint'
 installing default tracepoint libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/tracepoint'
-make[3]: Entering directory `$(@D)/ext/-test-/typeddata'
+make[3]: Leaving directory '$(@D)/ext/-test-/tracepoint'
+make[3]: Entering directory '$(@D)/ext/-test-/typeddata'
 installing default typeddata libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/typeddata'
-make[3]: Entering directory `$(@D)/ext/-test-/wait_for_single_fd'
+make[3]: Leaving directory '$(@D)/ext/-test-/typeddata'
+make[3]: Entering directory '$(@D)/ext/-test-/wait_for_single_fd'
 installing default wait_for_single_fd libraries
-make[3]: Leaving directory `$(@D)/ext/-test-/wait_for_single_fd'
-make[3]: Entering directory `$(@D)/ext/-test-/win32/dln'
-make[3]: Nothing to be done for `all'.
-make[3]: Leaving directory `$(@D)/ext/-test-/win32/dln'
-make[3]: Entering directory `$(@D)/ext/-test-/win32/dln/empty'
-make[3]: Nothing to be done for `all'.
-make[3]: Leaving directory `$(@D)/ext/-test-/win32/dln/empty'
-make[3]: Entering directory `$(@D)/ext/-test-/win32/fd_setsize'
-make[3]: Nothing to be done for `all'.
-make[3]: Leaving directory `$(@D)/ext/-test-/win32/fd_setsize'
-make[3]: Entering directory `$(@D)/ext/bigdecimal'
+make[3]: Leaving directory '$(@D)/ext/-test-/wait_for_single_fd'
+make[3]: Entering directory '$(@D)/ext/-test-/win32/dln'
+make[3]: Nothing to be done for 'all'.
+make[3]: Leaving directory '$(@D)/ext/-test-/win32/dln'
+make[3]: Entering directory '$(@D)/ext/-test-/win32/dln/empty'
+make[3]: Nothing to be done for 'all'.
+make[3]: Leaving directory '$(@D)/ext/-test-/win32/dln/empty'
+make[3]: Entering directory '$(@D)/ext/-test-/win32/fd_setsize'
+make[3]: Nothing to be done for 'all'.
+make[3]: Leaving directory '$(@D)/ext/-test-/win32/fd_setsize'
+make[3]: Entering directory '$(@D)/ext/bigdecimal'
 installing default bigdecimal libraries
-make[3]: Leaving directory `$(@D)/ext/bigdecimal'
-make[3]: Entering directory `$(@D)/ext/continuation'
+make[3]: Leaving directory '$(@D)/ext/bigdecimal'
+make[3]: Entering directory '$(@D)/ext/continuation'
 installing default continuation libraries
-make[3]: Leaving directory `$(@D)/ext/continuation'
-make[3]: Entering directory `$(@D)/ext/coverage'
+make[3]: Leaving directory '$(@D)/ext/continuation'
+make[3]: Entering directory '$(@D)/ext/coverage'
 installing default coverage libraries
-make[3]: Leaving directory `$(@D)/ext/coverage'
-make[3]: Entering directory `$(@D)/ext/date'
+make[3]: Leaving directory '$(@D)/ext/coverage'
+make[3]: Entering directory '$(@D)/ext/date'
 installing default date_core libraries
-make[3]: Leaving directory `$(@D)/ext/date'
-make[3]: Entering directory `$(@D)/ext/dbm'
+make[3]: Leaving directory '$(@D)/ext/date'
+make[3]: Entering directory '$(@D)/ext/dbm'
 installing default dbm libraries
-make[3]: Leaving directory `$(@D)/ext/dbm'
-make[3]: Entering directory `$(@D)/ext/digest'
+make[3]: Leaving directory '$(@D)/ext/dbm'
+make[3]: Entering directory '$(@D)/ext/digest'
 installing digest libraries
 installing default digest libraries
-make[3]: Leaving directory `$(@D)/ext/digest'
-make[3]: Entering directory `$(@D)/ext/digest/bubblebabble'
+make[3]: Leaving directory '$(@D)/ext/digest'
+make[3]: Entering directory '$(@D)/ext/digest/bubblebabble'
 installing default bubblebabble libraries
-make[3]: Leaving directory `$(@D)/ext/digest/bubblebabble'
-make[3]: Entering directory `$(@D)/ext/digest/md5'
+make[3]: Leaving directory '$(@D)/ext/digest/bubblebabble'
+make[3]: Entering directory '$(@D)/ext/digest/md5'
 installing default md5 libraries
-make[3]: Leaving directory `$(@D)/ext/digest/md5'
-make[3]: Entering directory `$(@D)/ext/digest/rmd160'
+make[3]: Leaving directory '$(@D)/ext/digest/md5'
+make[3]: Entering directory '$(@D)/ext/digest/rmd160'
 installing default rmd160 libraries
-make[3]: Leaving directory `$(@D)/ext/digest/rmd160'
-make[3]: Entering directory `$(@D)/ext/digest/sha1'
+make[3]: Leaving directory '$(@D)/ext/digest/rmd160'
+make[3]: Entering directory '$(@D)/ext/digest/sha1'
 installing default sha1 libraries
-make[3]: Leaving directory `$(@D)/ext/digest/sha1'
-make[3]: Entering directory `$(@D)/ext/digest/sha2'
+make[3]: Leaving directory '$(@D)/ext/digest/sha1'
+make[3]: Entering directory '$(@D)/ext/digest/sha2'
 installing default sha2 libraries
-make[3]: Leaving directory `$(@D)/ext/digest/sha2'
-make[3]: Entering directory `$(@D)/ext/dl'
+make[3]: Leaving directory '$(@D)/ext/digest/sha2'
+make[3]: Entering directory '$(@D)/ext/dl'
 installing dl libraries
 installing default dl libraries
-make[3]: Leaving directory `$(@D)/ext/dl'
-make[3]: Entering directory `$(@D)/ext/dl/callback'
+make[3]: Leaving directory '$(@D)/ext/dl'
+make[3]: Entering directory '$(@D)/ext/dl/callback'
 installing default callback libraries
-make[3]: Leaving directory `$(@D)/ext/dl/callback'
-make[3]: Entering directory `$(@D)/ext/etc'
+make[3]: Leaving directory '$(@D)/ext/dl/callback'
+make[3]: Entering directory '$(@D)/ext/etc'
 installing default etc libraries
-make[3]: Leaving directory `$(@D)/ext/etc'
-make[3]: Entering directory `$(@D)/ext/fcntl'
+make[3]: Leaving directory '$(@D)/ext/etc'
+make[3]: Entering directory '$(@D)/ext/fcntl'
 installing default fcntl libraries
-make[3]: Leaving directory `$(@D)/ext/fcntl'
-make[3]: Entering directory `$(@D)/ext/fiber'
+make[3]: Leaving directory '$(@D)/ext/fcntl'
+make[3]: Entering directory '$(@D)/ext/fiber'
 installing default fiber libraries
-make[3]: Leaving directory `$(@D)/ext/fiber'
-make[3]: Entering directory `$(@D)/ext/fiddle'
+make[3]: Leaving directory '$(@D)/ext/fiber'
+make[3]: Entering directory '$(@D)/ext/fiddle'
 installing default fiddle libraries
-make[3]: Leaving directory `$(@D)/ext/fiddle'
-make[3]: Entering directory `$(@D)/ext/gdbm'
+make[3]: Leaving directory '$(@D)/ext/fiddle'
+make[3]: Entering directory '$(@D)/ext/gdbm'
 installing default gdbm libraries
-make[3]: Leaving directory `$(@D)/ext/gdbm'
-make[3]: Entering directory `$(@D)/ext/io/console'
+make[3]: Leaving directory '$(@D)/ext/gdbm'
+make[3]: Entering directory '$(@D)/ext/io/console'
 installing default console libraries
-make[3]: Leaving directory `$(@D)/ext/io/console'
-make[3]: Entering directory `$(@D)/ext/io/nonblock'
+make[3]: Leaving directory '$(@D)/ext/io/console'
+make[3]: Entering directory '$(@D)/ext/io/nonblock'
 installing default nonblock libraries
-make[3]: Leaving directory `$(@D)/ext/io/nonblock'
-make[3]: Entering directory `$(@D)/ext/io/wait'
+make[3]: Leaving directory '$(@D)/ext/io/nonblock'
+make[3]: Entering directory '$(@D)/ext/io/wait'
 installing default wait libraries
-make[3]: Leaving directory `$(@D)/ext/io/wait'
-make[3]: Entering directory `$(@D)/ext/json'
+make[3]: Leaving directory '$(@D)/ext/io/wait'
+make[3]: Entering directory '$(@D)/ext/json'
 installing default libraries
-make[3]: Leaving directory `$(@D)/ext/json'
-make[3]: Entering directory `$(@D)/ext/json/generator'
+make[3]: Leaving directory '$(@D)/ext/json'
+make[3]: Entering directory '$(@D)/ext/json/generator'
 installing default generator libraries
-make[3]: Leaving directory `$(@D)/ext/json/generator'
-make[3]: Entering directory `$(@D)/ext/json/parser'
+make[3]: Leaving directory '$(@D)/ext/json/generator'
+make[3]: Entering directory '$(@D)/ext/json/parser'
 installing default parser libraries
-make[3]: Leaving directory `$(@D)/ext/json/parser'
-make[3]: Entering directory `$(@D)/ext/mathn/complex'
+make[3]: Leaving directory '$(@D)/ext/json/parser'
+make[3]: Entering directory '$(@D)/ext/mathn/complex'
 installing default complex libraries
-make[3]: Leaving directory `$(@D)/ext/mathn/complex'
-make[3]: Entering directory `$(@D)/ext/mathn/rational'
+make[3]: Leaving directory '$(@D)/ext/mathn/complex'
+make[3]: Entering directory '$(@D)/ext/mathn/rational'
 installing default rational libraries
-make[3]: Leaving directory `$(@D)/ext/mathn/rational'
-make[3]: Entering directory `$(@D)/ext/nkf'
+make[3]: Leaving directory '$(@D)/ext/mathn/rational'
+make[3]: Entering directory '$(@D)/ext/nkf'
 installing default nkf libraries
-make[3]: Leaving directory `$(@D)/ext/nkf'
-make[3]: Entering directory `$(@D)/ext/objspace'
+make[3]: Leaving directory '$(@D)/ext/nkf'
+make[3]: Entering directory '$(@D)/ext/objspace'
 installing default objspace libraries
-make[3]: Leaving directory `$(@D)/ext/objspace'
-make[3]: Entering directory `$(@D)/ext/openssl'
+make[3]: Leaving directory '$(@D)/ext/objspace'
+make[3]: Entering directory '$(@D)/ext/openssl'
 installing default openssl libraries
-make[3]: Leaving directory `$(@D)/ext/openssl'
-make[3]: Entering directory `$(@D)/ext/pathname'
+make[3]: Leaving directory '$(@D)/ext/openssl'
+make[3]: Entering directory '$(@D)/ext/pathname'
 installing default pathname libraries
-make[3]: Leaving directory `$(@D)/ext/pathname'
-make[3]: Entering directory `$(@D)/ext/psych'
+make[3]: Leaving directory '$(@D)/ext/pathname'
+make[3]: Entering directory '$(@D)/ext/psych'
 installing default psych libraries
-make[3]: Leaving directory `$(@D)/ext/psych'
-make[3]: Entering directory `$(@D)/ext/pty'
+make[3]: Leaving directory '$(@D)/ext/psych'
+make[3]: Entering directory '$(@D)/ext/pty'
 installing default pty libraries
-make[3]: Leaving directory `$(@D)/ext/pty'
-make[3]: Entering directory `$(@D)/ext/racc/cparse'
+make[3]: Leaving directory '$(@D)/ext/pty'
+make[3]: Entering directory '$(@D)/ext/racc/cparse'
 installing default cparse libraries
-make[3]: Leaving directory `$(@D)/ext/racc/cparse'
-make[3]: Entering directory `$(@D)/ext/rbconfig/sizeof'
+make[3]: Leaving directory '$(@D)/ext/racc/cparse'
+make[3]: Entering directory '$(@D)/ext/rbconfig/sizeof'
 installing default sizeof libraries
-make[3]: Leaving directory `$(@D)/ext/rbconfig/sizeof'
-make[3]: Entering directory `$(@D)/ext/readline'
+make[3]: Leaving directory '$(@D)/ext/rbconfig/sizeof'
+make[3]: Entering directory '$(@D)/ext/readline'
 installing default readline libraries
-make[3]: Leaving directory `$(@D)/ext/readline'
-make[3]: Entering directory `$(@D)/ext/ripper'
+make[3]: Leaving directory '$(@D)/ext/readline'
+make[3]: Entering directory '$(@D)/ext/ripper'
 installing default ripper libraries
 checking $(SOURCE_DIR)/parse.y and $(SOURCE_DIR)/ext/ripper/eventids2.c
-make[3]: Leaving directory `$(@D)/ext/ripper'
-make[3]: Entering directory `$(@D)/ext/sdbm'
+make[3]: Leaving directory '$(@D)/ext/ripper'
+make[3]: Entering directory '$(@D)/ext/sdbm'
 installing default sdbm libraries
-make[3]: Leaving directory `$(@D)/ext/sdbm'
-make[3]: Entering directory `$(@D)/ext/socket'
+make[3]: Leaving directory '$(@D)/ext/sdbm'
+make[3]: Entering directory '$(@D)/ext/socket'
 installing default socket libraries
-make[3]: Leaving directory `$(@D)/ext/socket'
-make[3]: Entering directory `$(@D)/ext/stringio'
+make[3]: Leaving directory '$(@D)/ext/socket'
+make[3]: Entering directory '$(@D)/ext/stringio'
 installing default stringio libraries
-make[3]: Leaving directory `$(@D)/ext/stringio'
-make[3]: Entering directory `$(@D)/ext/strscan'
+make[3]: Leaving directory '$(@D)/ext/stringio'
+make[3]: Entering directory '$(@D)/ext/strscan'
 installing default strscan libraries
-make[3]: Leaving directory `$(@D)/ext/strscan'
-make[3]: Entering directory `$(@D)/ext/syslog'
+make[3]: Leaving directory '$(@D)/ext/strscan'
+make[3]: Entering directory '$(@D)/ext/syslog'
 installing default syslog libraries
-make[3]: Leaving directory `$(@D)/ext/syslog'
-make[3]: Entering directory `$(@D)/ext/thread'
+make[3]: Leaving directory '$(@D)/ext/syslog'
+make[3]: Entering directory '$(@D)/ext/thread'
 installing default thread libraries
-make[3]: Leaving directory `$(@D)/ext/thread'
-make[3]: Entering directory `$(@D)/ext/tk'
+make[3]: Leaving directory '$(@D)/ext/thread'
+make[3]: Entering directory '$(@D)/ext/tk'
 installing tcltklib libraries
 installing default tcltklib libraries
-make[3]: Leaving directory `$(@D)/ext/tk'
-make[3]: Entering directory `$(@D)/ext/tk/tkutil'
+make[3]: Leaving directory '$(@D)/ext/tk'
+make[3]: Entering directory '$(@D)/ext/tk/tkutil'
 installing default tkutil libraries
-make[3]: Leaving directory `$(@D)/ext/tk/tkutil'
-make[3]: Entering directory `$(@D)/ext/win32'
-make[3]: Nothing to be done for `all'.
-make[3]: Leaving directory `$(@D)/ext/win32'
-make[3]: Entering directory `$(@D)/ext/win32ole'
-make[3]: Nothing to be done for `all'.
-make[3]: Leaving directory `$(@D)/ext/win32ole'
-make[3]: Entering directory `$(@D)/ext/zlib'
+make[3]: Leaving directory '$(@D)/ext/tk/tkutil'
+make[3]: Entering directory '$(@D)/ext/win32'
+make[3]: Nothing to be done for 'all'.
+make[3]: Leaving directory '$(@D)/ext/win32'
+make[3]: Entering directory '$(@D)/ext/win32ole'
+make[3]: Nothing to be done for 'all'.
+make[3]: Leaving directory '$(@D)/ext/win32ole'
+make[3]: Entering directory '$(@D)/ext/zlib'
 installing default zlib libraries
-make[3]: Leaving directory `$(@D)/ext/zlib'
-make[3]: Entering directory `$(@D)'
-make[3]: `ruby' is up to date.
-make[3]: Leaving directory `$(@D)'
-make[2]: Leaving directory `$(@D)'
+make[3]: Leaving directory '$(@D)/ext/zlib'
+make[3]: Entering directory '$(@D)'
+make[3]: 'ruby' is up to date.
+make[3]: Leaving directory '$(@D)'
+make[2]: Leaving directory '$(@D)'
 $(SOURCE_DIR)/tool/rubytest.rb:20: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 sample/test.rb:assignment ....................................................................................................................................................................................................................................................................................................................................................................................OK 372
 sample/test.rb:condition ..OK 2
@@ -354,7 +354,7 @@
 KNOWNBUGS.rb 
 No tests, no problem
 ./miniruby -I$(SOURCE_DIR)/lib -I. -I.ext/common  $(SOURCE_DIR)/tool/runruby.rb --extout=.ext  -- --disable-gems "$(SOURCE_DIR)/test/runner.rb" --ruby="./miniruby -I$(SOURCE_DIR)/lib -I. -I.ext/common  $(SOURCE_DIR)/tool/runruby.rb --extout=.ext  -- --disable-gems"  
-$(SOURCE_DIR)/test/dtrace/helper.rb:13: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
+$(SOURCE_DIR)/test/misc/test_ruby_mode.rb:9: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 Run options: "--ruby=./miniruby -I$(SOURCE_DIR)/lib -I. -I.ext/common  $(SOURCE_DIR)/tool/runruby.rb --extout=.ext  -- --disable-gems"
 
 # Running tests:
@@ -439,13 +439,6 @@
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-Test_StringModifyExpand#test_modify_expand_memory_leak [$(SOURCE_DIR)/test/-ext-/string/test_modify_expand.rb:7]:
-rb_str_modify_expand().
-<[true, ""]> expected but was
-<[true,
- "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
-
-NUM) Failure:
 DL::TestImport#test_no_memory_leak XXX_RUBY_FILE_XXX:
 <[true, ""]> expected but was
 <[true,
@@ -458,12 +451,24 @@
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-TestProcess#test_exec_noshell [$(SOURCE_DIR)/test/ruby/test_process.rb:884]:
-<"Errno::ENOENT success"> expected but was
-<"s:4: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
+Fiddle::TestHandle#test_no_memory_leak XXX_RUBY_FILE_XXX:
+<[true, ""]> expected but was
+<[true,
+ "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-Fiddle::TestHandle#test_no_memory_leak XXX_RUBY_FILE_XXX:
+URI::TestGeneric#test_find_proxy [$(SOURCE_DIR)/test/uri/test_generic.rb:772]:
+Expected #<URI::HTTP:0xXXX URL:http://www-proxy.us.oracle.com> to be nil.
+
+NUM) Failure:
+Test_StringModifyExpand#test_modify_expand_memory_leak [$(SOURCE_DIR)/test/-ext-/string/test_modify_expand.rb:7]:
+rb_str_modify_expand().
+<[true, ""]> expected but was
+<[true,
+ "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
+
+NUM) Failure:
+Fiddle::TestPointer#test_no_memory_leak XXX_RUBY_FILE_XXX:
 <[true, ""]> expected but was
 <[true,
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
@@ -476,17 +481,9 @@
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-Fiddle::TestPointer#test_no_memory_leak XXX_RUBY_FILE_XXX:
-<[true, ""]> expected but was
-<[true,
- "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
-
-NUM) Failure:
-OpenSSL::TestPKeyRSA#test_sign_verify_memory_leak [$(SOURCE_DIR)/test/openssl/test_pkey_rsa.rb:80]:
-[ruby-core:62038] [Bug #9743].
-<[true, ""]> expected but was
-<[true,
- "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
+TestProcess#test_exec_noshell [$(SOURCE_DIR)/test/ruby/test_process.rb:884]:
+<"Errno::ENOENT success"> expected but was
+<"s:4: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
 TestObject#test_copied_ivar_memory_leak [$(SOURCE_DIR)/test/ruby/test_object.rb:820]:
@@ -496,11 +493,6 @@
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-TestIO#test_reopen_inherit [$(SOURCE_DIR)/test/ruby/test_io.rb:1978]:
-<"outerr"> expected but was
-<"-e:4: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
-
-NUM) Failure:
 TestBeginEndBlock#test_endblockwarn [$(SOURCE_DIR)/test/ruby/test_beginendblock.rb:73]:
 <"endblockwarn_rb:2: warning: END in method; use at_exit\n(eval):2: warning: END in method; use at_exit\n"> expected but was
 <"XXX_TMPFILE_XXX: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
@@ -513,9 +505,9 @@
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-TestGc#test_latest_gc_info [$(SOURCE_DIR)/test/ruby/test_gc.rb:110]:
-<:nofree> expected but was
-<:oldmalloc>.
+TestIO#test_reopen_inherit [$(SOURCE_DIR)/test/ruby/test_io.rb:1978]:
+<"outerr"> expected but was
+<"-e:4: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
 TestHash::TestSubHash#test_exception_in_rehash [$(SOURCE_DIR)/test/ruby/test_hash.rb:1245]:
@@ -525,8 +517,46 @@
  "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
 
 NUM) Failure:
-URI::TestGeneric#test_find_proxy [$(SOURCE_DIR)/test/uri/test_generic.rb:772]:
-Expected #<URI::HTTP:0xXXX URL:http://www-proxy.us.oracle.com> to be nil.
+OpenSSL::TestPKeyRSA#test_sign_verify_memory_leak [$(SOURCE_DIR)/test/openssl/test_pkey_rsa.rb:80]:
+[ruby-core:62038] [Bug #9743].
+<[true, ""]> expected but was
+<[true,
+ "$(SOURCE_DIR)/test/ruby/memory_status.rb:87: warning: Insecure world writable dir XXX_DIR_XXX in PATH, mode XXX_MODE_XXX
+
+NUM) Error:
+TestGemRemoteFetcher#test_ssl_client_cert_auth_connection:
+Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://localhost:49709/yaml)
+    $(SOURCE_DIR)/lib/rubygems/request.rb:101:in `rescue in connection_for'
+    $(SOURCE_DIR)/lib/rubygems/request.rb:74:in `connection_for'
+    $(SOURCE_DIR)/lib/rubygems/request.rb:122:in `fetch'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:343:in `request'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:237:in `fetch_http'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:272:in `fetch_path'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:662:in `block in test_ssl_client_cert_auth_connection'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:719:in `with_configured_fetcher'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:659:in `test_ssl_client_cert_auth_connection'
+
+NUM) Error:
+TestGemRemoteFetcher#test_ssl_connection:
+Gem::RemoteFetcher::FetchError: SSL_connect returned=1 errno=0 state=error: certificate verify failed (https://localhost:65016/yaml)
+    $(SOURCE_DIR)/lib/rubygems/request.rb:101:in `rescue in connection_for'
+    $(SOURCE_DIR)/lib/rubygems/request.rb:74:in `connection_for'
+    $(SOURCE_DIR)/lib/rubygems/request.rb:122:in `fetch'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:343:in `request'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:237:in `fetch_http'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:272:in `fetch_path'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:645:in `block in test_ssl_connection'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:719:in `with_configured_fetcher'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:644:in `test_ssl_connection'
+
+NUM) Error:
+TestGemRemoteFetcher#test_ssl_connection_allow_verify_none:
+Gem::RemoteFetcher::FetchError: bad response cannotconnect 502 (https://localhost:47190/yaml)
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:254:in `fetch_http'
+    $(SOURCE_DIR)/lib/rubygems/remote_fetcher.rb:272:in `fetch_path'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:697:in `block in test_ssl_connection_allow_verify_none'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:719:in `with_configured_fetcher'
+    $(SOURCE_DIR)/test/rubygems/test_gem_remote_fetcher.rb:696:in `test_ssl_connection_allow_verify_none'
 
 NUM) Error:
 TestGemCommandsServerCommand#test_handle_options_port:
@@ -551,30 +581,24 @@
     $(SOURCE_DIR)/test/rinda/test_rinda.rb:741:in `test_make_socket_ipv4_multicast'
 
 NUM) Error:
+Fiddle::TestHandle#test_static_sym:
+LoadError: cannot load such file -- -test-/dln/empty
+    $(SOURCE_DIR)/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
+    $(SOURCE_DIR)/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
+    $(SOURCE_DIR)/test/fiddle/test_handle.rb:57:in `rescue in test_static_sym'
+    $(SOURCE_DIR)/test/fiddle/test_handle.rb:51:in `test_static_sym'
+
+NUM) Error:
 Fiddle::TestHandle#test_NEXT:
 LoadError: cannot load such file -- -test-/dln/empty
     $(SOURCE_DIR)/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
     $(SOURCE_DIR)/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
-    $(SOURCE_DIR)/test/fiddle/test_handle.rb:169:in `rescue in test_NEXT'
-    $(SOURCE_DIR)/test/fiddle/test_handle.rb:144:in `test_NEXT'
-
-NUM) Error:
-DL::TestHandle#test_static_sym:
-DL::DLError: unknown symbol "Init_objspace"
-    $(SOURCE_DIR)/test/dl/test_handle.rb:34:in `sym'
-    $(SOURCE_DIR)/test/dl/test_handle.rb:34:in `rescue in test_static_sym'
-    $(SOURCE_DIR)/test/dl/test_handle.rb:27:in `test_static_sym'
-
-NUM) Error:
-Fiddle::TestHandle#test_static_sym:
-LoadError: cannot load such file -- -test-/dln/empty
-    $(SOURCE_DIR)/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
-    $(SOURCE_DIR)/lib/rubygems/core_ext/kernel_require.rb:55:in `require'
-    $(SOURCE_DIR)/test/fiddle/test_handle.rb:40:in `rescue in test_static_sym'
-    $(SOURCE_DIR)/test/fiddle/test_handle.rb:34:in `test_static_sym'
+    $(SOURCE_DIR)/test/fiddle/test_handle.rb:186:in `rescue in test_NEXT'
+    $(SOURCE_DIR)/test/fiddle/test_handle.rb:161:in `test_NEXT'
 
 XXX_NUM_XXX tests, XXX_NUM_XXX assertions, XXX_NUM_XXX failures, XXX_NUM_XXX errors, XXX_NUM_XXX skips
 
 ruby -v: XXX_RUBY_VERSION_XXX
+Makefile:1018: recipe for target 'yes-test-all' failed
 make[1]: *** [yes-test-all] Error NUM
-make[1]: Leaving directory `$(@D)'
+make[1]: Leaving directory '$(@D)'