Warning: file_get_contents(https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/ru.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 88
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 215
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 216
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 217
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 218
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 219
Warning: Cannot modify header information - headers already sent by (output started at /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php:88) in /home/afelisqd/cppseducation.sc.tz/admin/images/photos/17587263121019776732_admin-dbb.php on line 220
Thu Oct 18 00:33:13 2018 Kazuki Yamaguchi
* ext/openssl: backport changes from openssl 2.1.2.
Wed Mar 28 23:08:46 2018 NAKAMURA Usaku
get rid of test error/failure on Windows introduced at r62955
* lib/webrick/httpresponse.rb (send_body_io): use seek if
NotImplementedError is raised in IO.copy_stream with offset.
* lib/webrick/httpservlet/filehandler.rb (multipart_body): ditto.
Wed Mar 28 23:08:46 2018 Eric Wong
webrick: support Proc objects as body responses
* lib/webrick/httpresponse.rb (send_body): call send_body_proc
(send_body_proc): new method
(class ChunkedWrapper): new class
* test/webrick/test_httpresponse.rb (test_send_body_proc): new test
(test_send_body_proc_chunked): ditto
[Feature #855]
webrick: favor .write over << method
This will make the next change to use IO.copy_stream
easier-to-read. When we can drop Ruby 2.4 support in a few
years, this will allow us to use writev(2) with multiple
arguments for headers and chunked responses.
* lib/webrick/cgi.rb (write): new wrapper method
lib/webrick/httpresponse.rb: (send_header): use socket.write
(send_body_io): ditto
(send_body_string): ditto
(send_body_proc): ditto
(_write_data): ditto
(ChunkedWrapper#write): ditto
(_send_file): ditto
webrick/httpresponse: IO.copy_stream for regular files
Remove the redundant _send_file method since its functionality
is unnecessary with IO.copy_stream. IO.copy_stream also allows
the use of sendfile under some OSes to speed up copies to
non-TLS sockets.
Testing with "curl >/dev/null" and "ruby -run -e httpd" to
read a 1G file over Linux loopback reveals a reduction from
around ~0.770 to ~0.490 seconds on the client side.
* lib/webrick/httpresponse.rb (send_body_io): use IO.copy_stream
(_send_file): remove
[Feature #14237]
webrick: use IO.copy_stream for single range response
This is also compatible with range responses generated
by Rack::File (tested with rack 2.0.3).
* lib/webrick/httpresponse.rb (send_body_io): use Content-Range
* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
use File object for the single range case
* test/webrick/test_filehandler.rb (get_res_body): use send_body
to test result
test/webrick/test_filehandler.rb: stricter multipart range test
We need to ensure we generate compatibile output in
the face of future changes
* test/webrick/test_filehandler.rb (test_make_partial_content):
check response body
webrick: quiet warning for multi-part ranges
Content-Length is ignored by WEBrick::HTTPResponse even if we
calculate it, so instead we chunk responses to HTTP/1.1 clients
and terminate HTTP/1.0 connections.
* lib/webrick/httpservlet/filehandler.rb (make_partial_content):
quiet warning
webrick/httpresponse: make ChunkedWrapper copy_stream-compatible
The .write method needs to return the number of bytes written
to avoid confusing IO.copy_stream.
* lib/webrick/httpresponse.rb (ChunkedWrapper#write): return bytes written
(ChunkedWrapper#<<): return self
webrick: use IO.copy_stream for multipart response
Use the new Proc response body feature to generate a multipart
range response dynamically. We use a flat array to minimize
object overhead as much as possible; as many ranges may fit
into an HTTP request header.
* lib/webrick/httpservlet/filehandler.rb (multipart_body): new method
(make_partial_content): use multipart_body
Wed Mar 28 21:24:24 2018 Nobuyoshi Nakada
unixsocket.c: abstract namespace
* ext/socket/unixsocket.c (unixsock_path_value): fix r62991 for
Linux abstract namespace.
Wed Mar 28 19:36:24 2018 Nobuyoshi Nakada
pack.c: fix underflow
* pack.c (pack_unpack_internal): get rid of underflow.
https://hackerone.com/reports/298246
Wed Mar 28 19:30:54 2018 Nobuyoshi Nakada
unixsocket.c: check NUL bytes
* ext/socket/unixsocket.c (rsock_init_unixsock): check NUL bytes.
https://hackerone.com/reports/302997
Wed Mar 28 19:29:03 2018 SHIBATA Hiroshi
Ignore file separator from tmpfile/tmpdir name.
Wed Mar 28 19:24:20 2018 Nobuyoshi Nakada
dir.c: check NUL bytes
* dir.c (GlobPathValue): should be used in rb_push_glob only.
other methods should use FilePathValue.
https://hackerone.com/reports/302338
* dir.c (rb_push_glob): expand GlobPathValue
Wed Mar 28 18:04:37 2018 Eric Wong
webrick: prevent response splitting and header injection
Original patch by tenderlove (with minor style adjustments).
* lib/webrick/httpresponse.rb (send_header): call check_header
(check_header): raise on embedded CRLF in header value
* test/webrick/test_httpresponse.rb
(test_prevent_response_splitting_headers): new test
* (test_prevent_response_splitting_cookie_headers): ditto
Wed Mar 28 18:04:37 2018 Eric Wong
webrick: use IO.copy_stream for multipart response
Use the new Proc response body feature to generate a multipart
range response dynamically. We use a flat array to minimize
object overhead as much as possible; as many ranges may fit
into an HTTP request header.
* lib/webrick/httpservlet/filehandler.rb (multipart_body): new method
(make_partial_content): use multipart_body
webrick/httprequest: limit request headers size
We use the same 112 KB limit started (AFAIK) by Mongrel, Thin,
and Puma to prevent malicious users from using up all the memory
with a single request. This also limits the damage done by
excessive ranges in multipart Range: requests.
Due to the way we rely on IO#gets and the desire to keep
the code simple, the actual maximum header may be 4093 bytes
larger than 112 KB, but we're splitting hairs at that point.
* lib/webrick/httprequest.rb: define MAX_HEADER_LENGTH
(read_header): raise when headers exceed max length
webrick/httpservlet/cgihandler: reduce memory use
WEBrick::HTTPRequest#body can be passed a block to process the
body in chunks. Use this feature to avoid building a giant
string in memory.
* lib/webrick/httpservlet/cgihandler.rb (do_GET):
avoid reading entire request body into memory
(do_POST is aliased to do_GET, so it handles bodies)
webrick/httprequest: raise correct exception
"BadRequest" alone does not resolve correctly, it is in the
HTTPStatus namespace.
* lib/webrick/httprequest.rb (read_chunked): use correct exception
* test/webrick/test_httpserver.rb (test_eof_in_chunk): new test
webrick/httprequest: use InputBufferSize for chunked requests
While WEBrick::HTTPRequest#body provides a Proc interface
for streaming large request bodies, clients must not force
the server to use an excessively large chunk size.
* lib/webrick/httprequest.rb (read_chunk_size): limit each
read and block.call to :InputBufferSize in config.
* test/webrick/test_httpserver.rb (test_big_chunks): new test
webrick: add test for Digest auth-int
No changes to the actual code, this is a new test for
a feature for which no tests existed. I don't understand
the Digest authentication code well at all, but this is
necessary for the subsequent change.
* test/webrick/test_httpauth.rb (test_digest_auth_int): new test
(credentials_for_request): support bodies with POST
webrick/httpauth/digestauth: stream req.body
WARNING! WARNING! WARNING! LIKELY BROKEN CHANGE
Pass a proc to WEBrick::HTTPRequest#body to avoid reading a
potentially large request body into memory during
authentication.
WARNING! this will break apps completely which want to do
something with the body besides calculating the MD5 digest
of it.
Also, keep in mind that probably nobody uses "auth-int".
Servers such as Apache, lighttpd, nginx don't seem to
support it; nor does curl when using POST/PUT bodies;
and we didn't have tests for it until now...
* lib/webrick/httpauth/digestauth.rb (_authenticate): stream req.body
Wed Mar 28 15:48:30 2018 Kazuki Yamaguchi
backport some changes from openssl gem v2.0.6 and v2.0.7.
[Backport #13935]
Wed Mar 28 15:24:15 2018 Nobuyoshi Nakada
Fix setting method visibility on method wrapped with prepend
Ignore prepended modules when looking for already defined methods on a
class to set the visibility on.
[Fix GH-1834]
From: Dylan Thacker-Smith Dylan.Smith@shopify.com
Wed Mar 28 15:02:43 2018 Nobuyoshi Nakada
resolv.rb: close socket
* lib/resolv.rb (UnconnectedUDP#lazy_initialize): store new
sockets before binding, so the sockets get closed when the
requester is closing.
* lib/resolv.rb (ConnectedUDP#lazy_initialize): ditto.
* lib/resolv.rb (UnconnectedUDP#close): synchronize to get rid of
race condition.
* lib/resolv.rb (ConnectedUDP#close): ditto.
[Bug #14571]
From: quixoten (Devin Christensen) quixoten@gmail.com
Wed Mar 28 14:59:27 2018 Nobuyoshi Nakada
socket.c: null byte at Socket.getnameinfo
* ext/socket/socket.c (sock_s_getnameinfo): check null byte. patched by
tommy (Masahiro Tomita) in . [Bug #13994]
Wed Mar 28 14:53:57 2018 Nobuyoshi Nakada
date_core.c: defensive code
* ext/date/date_core.c (f_cmp): check comparison failure.
* ext/date/date_core.c (d_lite_step): deal with the comparison
result more defensively. [Bug #14549]
Wed Mar 28 14:50:52 2018 Nobuyoshi Nakada
string.c: clear substring code range
* string.c (str_substr): substring of broken code range string may be
valid or broken. patch by tommy (Masahiro Tomita) at [Bug #14388].
Wed Mar 28 14:48:13 2018 Nobuyoshi Nakada
win32.c: memcpy instead of strlcpy
* win32/win32.c (cmdglob): memcpy the exact size instead of
strlcpy with +1.
* win32/win32.c (w32_cmdvector): ditto, with NUL-terminating.
Wed Mar 28 14:45:02 2018 Koichi Sasada
check array for zsuper. [Bug #14279]
* compile.c (iseq_compile_each0): for zsuper (NODE_ZSUPER), we need to
check given argument is Array or not.
* test/ruby/test_super.rb: add a test for this bug.
Wed Mar 28 14:40:25 2018 Eric Wong
net/ftp: fix FrozenError in BufferedSocket
I noticed this bug while working on something else with
RUBYOPT=-d on, existing test cases all passed with it.
Note: I use String.new because it is the local style, here,
I prefer +'' (or ''.b, for a future commit)
* lib/net/ftp.rb (BufferedSocket#read): use String.new
* test/net/ftp/test_buffered_socket.rb (test_read_nil): new test
[Bug #14323]
Wed Mar 28 14:29:26 2018 Nobuyoshi Nakada
clean autogenerated files
* enc/depend (clean, clean-srcs): fix path of name2ctype.h, and
remove casefold.h too.
* enc/jis/props.h: autogenerated file.
[Bug #13493]
Update sources and include files after update
Ignore enc/jis/props.h
Wed Mar 28 14:14:25 2018 URABE Shyouhei
fix SEGV touching uninitialized memory
This function can be called from boot_defclass().
No assumption can be made about object internals.
fix SEGV touching uninitialized memory
This function can be called from InitVM_Object().
No assumption can be made about object internals.
fix SEGV touching uninitialized local variable
This imemo_name is used uninitialized because the switch
above does not cover all possible imemo types.
fix SEGV inspecting already freed objects
obj_info() assumes the given object is alive. Passing freed
objects to it results in SEGV.
fix SEGV inspecting uninitialized objects
obj_info() assumes the given object is alive. OTOH
gc_writebarrier_incremental is called before or in middle of
object initialization. Can casue SEGV.
Wed Mar 28 13:56:17 2018 NARUSE, Yui
raise error if value contains CR/LF in iniheader of
initialize_http_header
like r59693, initialize_http_header also should raise error.
[Bug #14208]
Wed Mar 28 13:48:35 2018 Nobuyoshi Nakada
parse.y: end of script at newline
* parse.y (parser_yylex): deal with end of script chars just after
ignored newline as other places. [Bug #14206]
Wed Mar 28 13:42:55 2018 Kazuhiro NISHIYAMA
[DOC] IO.new accepts external_encoding
Revert part of r61278 [Bug #13655]
[ci skip]
Wed Mar 28 13:42:55 2018 NARUSE, Yui
IO.new doesn't receive "-" as external_encoding [Bug #13655]
Thu Mar 22 15:38:43 2018 NAKAMURA Usaku
Removed the obstacle to running test-all with VC14.
* test/fiddle/test_import.rb (LIBC.fprintf): VC14's `fprintf` is very distinct
name, then, just ignore this test.
Thu Mar 22 12:28:23 2018 NAKAMURA Usaku
merge https://github.com/ruby/openssl/commit/3af2635f117f8da563d180bc1c58702aecb16e0c
patched by Kazuki Yamaguchi
bio: prevent possible GC issue in ossl_obj2bio()
Prevent the new object created by StringValue() from being GCed.
Luckily, as none of the callers of ossl_obj2bio() reads from the
returned BIO after possible triggering GC, this has not been a real
problem.
As a bonus, ossl_protect_obj2bio() function which is no longer used
anywhere is removed.
merge https://github.com/ruby/openssl/commit/f842b0d5c5e37527c11954a4b7a98c8d9cc57865
patched by Kazuki Yamaguchi
bio: do not use the FILE BIO method in ossl_obj2bio()
Read everything from an IO object into a String first and use the
memory buffer BIO method just as we do for String inputs.
For MSVC builds, the FILE BIO method uses the "UPLINK" interface that
requires the application to provide OPENSSL_Applink() function. For us,
the "application" means ruby.exe, in which we can't do anything. As a
workaround, avoid using the FILE BIO method at all.
Usually private keys or X.509 certificates aren't that large and the
temporarily increased memory usage hopefully won't be an issue.
ext/openssl/ossl_version.h (OpenSSL::VERSION): bump to 1.1.1.
Thu Mar 22 11:24:43 2018 NAKAMURA Usaku
* win32/win32.c (set_pioinfo_extra): use more reliable way to search
the position of pioinfo of VC14, and also support debug library of it.
patched by davispuh AT gmail.com
[ruby-core:76644] [Bug #12644]
this fixes also [Bug #12631]
Thu Mar 22 11:24:43 2018 Nobuyoshi Nakada
win32.c: suppress warnings
* win32/win32.c (set_pioinfo_extra): remove "/*" within comment.
Thu Mar 22 11:24:43 2018 NARUSE, Yui
Support MSVC14 and 15 [Bug #11118]
Search _pioinfo which is not exported after MSVC14.
[Bug #12014] [GH-884]
Mon Mar 19 00:34:38 2018 Nobuyoshi Nakada
win32.c: unknown reparse tags
* win32/win32.c (rb_w32_read_reparse_point): skip unknown reparse tags.
[Bug #14047]
Mon Mar 19 00:32:31 2018 Nobuyoshi Nakada
* test/ruby/test_lazy_enumerator.rb: test for [Bug #14082]
enum.c: check argument first
* enum.c (enum_cycle_size): check an argument before the size of the
receiver, if it is given.
Mon Mar 19 00:32:31 2018 Marc-Andre Lafortune
Fix size on Enumerable#cycle when the size is 0 [Bug #14082].
Patch by Kenichi Kamiya
Mon Mar 19 00:28:28 2018 Nobuyoshi Nakada
* parse.y (parser_here_document): an escaped newline is not an
actual newline, and the rest part should not be dedented.
[ruby-core:72855] [Bug #11989]
Mon Mar 19 00:27:06 2018 Koichi Sasada
thread_pthread: do not corrupt stack
This fixes stuck test/ruby/test_io.rb with FIBER_USE_NATIVE=0 on
GNU/Linux because linked-list pointers used by glibc get
corrupted when fiber stacks are copied.
Thanks to wanabe for finding the bug and original patch.
* thread_pthread (native_thread_init_stack): fix stack corruption
[Bug #13387]
Mon Mar 19 00:22:52 2018 Marc-Andre Lafortune
TracePoint#enable, #disable: Don't yield any argument. [Bug #14057]
Mon Mar 19 00:21:00 2018 SHIBATA Hiroshi
Clarify the behavior of IO.write without offset in write mode.
https://github.com/ruby/ruby/pull/1571
Patch by takanabe (Takayuki Watanabe) [fix GH-1571]
[Bug #11638]
Mon Mar 19 00:16:28 2018 Nobuyoshi Nakada
parse.y: token info with BOM
* parse.y (parser_prepare): set token_info_enabled flag first, before
returning at BOM. [Bug #13998]
Mon Mar 19 00:06:43 2018 Hiroshi Shirosaki
io.c: fix segfault with closing socket on Windows
* io.c (fptr_finalize_flush): add an argument to keep GVL.
* io.c (fptr_finalize): adjust for above change.
* io.c (io_close_fptr): closing without GVL causes another exception
while raising exception in another thread. This causes segfault on
Windows. Keep GVL while closing when another thread raises.
[Bug #13856]
Mon Mar 19 00:04:08 2018 Nobuyoshi Nakada
* lib/forwardable.rb (_delegator_method): leave the backtrace
untouched during accessor. forwardable.rb does not appear in
the backtrace during delegated method because of tail-call
optimization.
Sun Mar 18 23:59:32 2018 Nobuyoshi Nakada
dup String#partition return value
* string.c (rb_str_partition): return duplicated receiver, when no
splits. [Bug#13925]
Author: Seiei Miyagi hanachin@gmail.com
dup String#rpartition return value
* string.c (rb_str_rpartition): return duplicated receiver, when no
splits. [Bug#13925]
Author: Seiei Miyagi hanachin@gmail.com
dup String#split return value
* string.c (rb_str_split): return duplicated receiver, when no splits.
patched by tompng (tomoya ishida) in , and the test case by Seiei
Miyagi hanachin@gmail.com. [Bug#13925] [Fix GH-1705]
Sun Mar 18 23:57:32 2018 Nobuyoshi Nakada
ruby.c: paragraph mode by -00
* ruby.c (proc_options): set to paragraph mode, if -00 is given, as
well as perl and -R0 option in 0.49. [Bug #13736]
Sun Mar 18 23:55:23 2018 Eric Wong
process: block/unblock signals around fork
As with forking for execve(2) in spawn', we must block signals
to ensure they are handled correctly in a freshlyfork'-ed child.
* process.c (retry_fork_ruby): block/unblock signals around fork
(rb_fork_ruby): re-enable signals in forked child
* test/ruby/test_process.rb (test_forked_child_signal): new test
[Bug #13916]
Thanks to Russell Davis for the bug report and test case.
Sun Mar 18 23:52:37 2018 Kazuki Tsujimoto
vm.c: fix `cfp consistency error' which occurs when raising exception
in bmethod call event
* vm.c (invoke_bmethod): set FINISH flag just before calling vm_exec.
[Bug #13705]
Sun Mar 18 23:36:24 2018 SHIBATA Hiroshi
added workaround for APFS file format.
* TestFileExhaustive#test_atime: It fails with nano-sec precise. I
changed to use unixtime for this assertion for APFS.
* TestFileExhaustive#test_expand_path: skip assertion when given
invalid charactor on APFS.
[Bug #13816]
Sun Mar 18 23:36:04 2018 NARUSE, Yui
High Sierra's APFS cannot use invalid filenames [Bug #13816]
Sun Mar 18 23:31:44 2018 Nobuyoshi Nakada
test_framework.rb: for case-sensitive filesystem
* test/mkmf/test_framework.rb (test_single_framework): fix header
file name for case-sensitive filesystem. it may not be same as
the framework name, but should be the actual file name.
[Bug #13489]
* test/mkmf/test_framework.rb (test_multi_frameworks): ditto.
test_file_exhaustive.rb: check case-sensitive fs
* test/ruby/test_file_exhaustive.rb (test_expand_path): dump expanded
file name, not only appended char, for case-sensitive filesystem.
[Bug #13489]
Sun Mar 18 23:29:14 2018 Masaki Suketa
* test/win32ole/test_word.rb: word quit without confirmation dialog to
save files. [Bug #13894] Thanks to h.shirosaki.
Sun Mar 18 23:26:20 2018 NARUSE, Yui
fix the case High Sierra's mincore(2) may return -128 [Bug #13895]
Sun Mar 18 23:23:48 2018 Koichi Sasada
skip unless PLATFORM is darwin.
Sun Mar 18 23:23:48 2018 NARUSE, Yui
Treat NULL reference case [Bug #13566]
Fix C level backtrace on Darwin
SEGV caused by invalid instruction call.
Sun Mar 18 23:11:29 2018 Nobuyoshi Nakada
* configure.in (ARFLAGS): check if deterministic mode flag is
effective, which is on by default on Ubuntu.
* configure.in: use libtool on macOS to suppress a warning against
debug_counter.o, which has no symbols unless USE_DEBUG_COUNTER is
set to non-zero.
* configure.in: use newer libtool only
Sat Feb 17 01:21:00 2018 SHIBATA Hiroshi
Merge RubyGems 2.7.6 from upstream.
It fixed some security vulnerabilities.
http://blog.rubygems.org/2018/02/15/2.7.6-released.html
fix regexp literal warning.
* test/rubygems/test_gem_server.rb: eliminate duplicated character class warning.
[Bug #14481]
Thu Feb 1 04:00:53 2018 NARUSE, Yui
Remove debug print introduced in r52386
Wed Jan 31 22:57:42 2018 Nobuyoshi Nakada
configure.in: link Foundation framework
* configure.in (XLDFLAGS): link against Foundation framework and
let __NSPlaceholderDictionary initialize, to get rid of crash
after fork on macOS High Sierra. [ruby-core:83239] [Bug #14009]
Wed Jan 31 22:51:59 2018 Pete Higgins
* thread_sync.c (Init_thread_sync): Remove confusing doc comments,
which are picked up by rdoc unexpectedly, from Queue and
SizedQueue. [Fix GH-1450]
Wed Jan 31 22:48:41 2018 Eric Wong
thread_pthread.c: do not wakeup inside child processes
* thread_pthread.c (rb_thread_wakeup_timer_thread): check
ownership before incrementing
(rb_thread_wakeup_timer_thread_low): ditto
[Bug #13794] [ruby-core:83064]
Wed Jan 31 22:46:36 2018 Rei Odaira
* configure.in (rb_cv_lgamma_r_pm0): check if lgamma_r(+0.0)
returns positive infinity, in addition to lgamma_r(-0.0).
AIX returns an incorrect result of negative infinity.
* math.c (ruby_lgamma_r): handle +0.0, in addition to -0.0.
Wed Jan 31 22:32:08 2018 Nobuyoshi Nakada
ext: check if null byte is contained
[ruby-dev:50267] [Bug #13953]
Wed Jan 31 22:29:57 2018 Nobuyoshi Nakada
string.c: fix ASCII-only on succ
* string.c (str_succ): clear coderange cache when no alpha-numeric
character case, carried part may become ASCII-only.
[ruby-core:83062] [Bug #13952]
Wed Jan 31 22:28:20 2018 Nobuyoshi Nakada
pack.c: unpack "M" may be ASCII only
* pack.c (pack_unpack_internal): set ASCII only properly on "M",
may be ASCII only. [ruby-core:83055] [Bug #13949]
Wed Jan 31 22:26:13 2018 Nobuyoshi Nakada
string.c: ASCII-incompatible is not ASCII only
* string.c (tr_trans): ASCII-incompatible encoding strings cannot
be ASCII-only even if valid. [ruby-core:83056] [Bug #13950]
Wed Jan 31 22:24:05 2018 Nobuyoshi Nakada
vm.c: fetch retval iff necessary
* vm.c (rb_vm_make_jump_tag_but_local_jump): get rid of fetching
retval when it is not used. it is necessary for local jump
state only.
Wed Jan 31 22:16:00 2018 Nobuyoshi Nakada
compile.c: fix stack consitency error
* compile.c (iseq_compile_each0): fix stack consitency error on
attr-assign with safe navigation operator when the receiver is
nil, should pop it too. [ruby-core:83078] [Bug #13964]
test_call.rb: refine test_safe_call
* test/ruby/test_call.rb (test_safe_call): rhs should not be
evaluated when the receiver is nil. simplified the assertion
for [Bug #13964].
Wed Jan 31 22:12:48 2018 Nobuyoshi Nakada
adjust indent
* vm_insnhelper.c (vm_call_method_each_type): adjust indent of a
block in switch.
visibility of inherited method
* vm_insnhelper.c (vm_call_method_each_type): honor the original
visibility of inherited methods when a refinement is defined but
not activated. [ruby-core:82209] [Bug #13776]
Author: Mon_Ouie (Mon ouie)
Wed Jan 31 20:47:07 2018 NARUSE, Yui
HTTPHeader#add_field should allow binary [Bug #13926]
Wed Jan 31 20:42:11 2018 Marcus Stollsteimer
ri.1: rewrite ri man page
* man/ri.1: update the (very outdated) ri man page:
* update document date
* fix document title formatting and volume name
* update descriptions and options to current ri --help text
* fix some mdoc formatting errors (missing escaping of `\',
wrong macro for bullet list items)
* various rewordings and other improvements
improve man pages
* man/ruby.1, man/erb.1, man/goruby.1, man/irb.1:
fix document title formatting and volume name,
improve "REPORTING BUGS" section: fix mdoc formatting error
(wrong macro for bullet list items), small rewordings.
Wed Jan 31 20:25:09 2018 Shugo Maeda
lib/net/imap.rb: Ignore trailing space for Microsoft Exchange Server
Based on the patch by keysen (Jeremy Carlier).
[ruby-core:81641] [Bug #13649]
Wed Jan 31 20:23:49 2018 sorah (Shota Fukumori)
Add documents on Process::CLOCK_* constants
* process.c: Add documents on Process::CLOCK_* constants.
Patch by Sunao Komuro .
Closes [GH-1567] [Bug #13386]
Wed Jan 31 20:11:20 2018 Marcus Stollsteimer
ri.1: fix errors in ri man page
* man/ri.1: fix some errors in ri man page (add missing options,
remove options that do not exist, fix formatter list).
Reported by Josh Cheek. [ruby-core:68065] [Bug #10838]
Wed Jan 31 20:09:50 2018 Marcus Stollsteimer
date_core.c: fix error in DateTime docs
* ext/date/date_core.c: [DOC] fix format string for DateTime#rfc3339.
Reported by Andreas Rayo Kniep. [ruby-core:68418] [Bug #10936]
* ext/date/date_core.c: [DOC] ditto for DateTime#iso8601 and
DateTime#xmlschema; other small improvements.
Wed Jan 31 20:04:47 2018 Marcus Stollsteimer
lib/ostruct.rb: [DOC] revise docs for OpenStruct
* update paragraph on implementation:
define_singleton_method is used, not define_method
* add call-seq with return values for each_pair
* adopt description of dig from Array and Hash
* fix description of the hash method
* :nodoc: initialize_copy, respond_to_missing?
* other small improvements, e.g. use the term `attribute' in the docs
(instead of `member'), which is clearer for users of the class
* improve code examples: e.g. use more consistent style (always use
double quotes, drop `p' and `puts', ...), update inspect output,
use example data that is not prone to change (like population)
* add more code examples
* fix some small errors and grammar
[ruby-core:79265] [Bug #13159]
Wed Jan 31 20:02:29 2018 Kazuhiro NISHIYAMA
rational.c: fix rdoc
* rational.c: [DOC] fix wrong indentations and comment out some lines
in code examples to make them valid Ruby code and syntax highlighted
on the rendered page.
[ci skip] [Bug #13233]
Author: Marcus Stollsteimer sto.mar@web.de
Wed Jan 31 19:57:09 2018 Eric Wong
doc: Add example for Symbol#to_s
* string.c: add example for Symbol#to_s.
The docs for Symbol#to_s only include an example for
Symbol#id2name, but not for #to_s which is an alias;
the docs should include examples for both methods.
From: Marcus Stollsteimer
Wed Jan 31 19:49:44 2018 Reiner Herrmann
* lib/mkmf.rb (create_makefile): sort lists of source and object
files in generated Makefile, unless given by extconf.rb.
[Fix GH-1367]
Fri Dec 15 03:48:55 2017 NAKAMURA Usaku
* version.h: Bump version to 2.3.7
Thu Dec 14 23:53:41 2017 NAKAMURA Usaku
* test/net/ftp/test_ftp.rb (process_port_or_eprt): merge a part of
r56973 to pass the test introduced at previous commit.
Thu Dec 14 22:55:05 2017 Shugo Maeda
Fix a command injection vulnerability in Net::FTP.
Thu Dec 14 22:35:19 2017 Eric Wong
webrick: compile RE correctly for beginning and end match
Using ^ and $ in regexps means we can accidentally get fooled
by "%0a" in HTTP request paths being decoded to newline
characters. Use \A and \z to match beginning and end-of-string
respectively, instead.
Thanks to mame and hsbt for reporting.
* lib/webrick/httpserver.rb (MountTable#compile):
use \A and \z instead of ^ and $
* lib/webrick/httpserver.rb (MountTable#normalize): use \z instead of $
* test/webrick/test_httpserver.rb (test_cntrl_in_path): new test
Thu Dec 14 22:29:04 2017 Eric Wong
webrick: do not hang acceptor on slow TLS connections
OpenSSL::SSL::SSLSocket#accept may block indefinitely on clients
which negotiate the TCP connection, but fail (or are slow) to
negotiate the subsequent TLS handshake. This prevents the
multi-threaded WEBrick server from accepting other connections.
Since the TLS handshake (via OpenSSL::SSL::SSLSocket#accept)
consists of normal read/write traffic over TCP, handle it in the
per-client thread, instead.
Furthermore, using non-blocking accept() is useful for non-TLS
sockets anyways because spurious wakeups are possible from
select(2).
* lib/webrick/server.rb (accept_client): use TCPServer#accept_nonblock
and remove OpenSSL::SSL::SSLSocket#accept call
* lib/webrick/server.rb (start_thread): call OpenSSL::SSL::SSLSocket#acc
ept
* test/webrick/test_ssl_server.rb (test_slow_connect): new test
[ruby-core:83221] [Bug #14005]
webrick: fix up r60172
By making the socket non-blocking in r60172, TLS/SSL negotiation
via the SSL_accept function must handle non-blocking sockets
properly and retry on SSL_ERROR_WANT_READ/SSL_ERROR_WANT_WRITE.
OpenSSL::SSL::SSLSocket#accept cannot do that properly with a
non-blocking socket, so it must use non-blocking logic of
OpenSSL::SSL::SSLSocket#accept_nonblock.
Thanks to MSP-Greg (Greg L) for finding this.
* lib/webrick/server.rb (start_thread): use SSL_accept properly
with non-blocking socket.
[Bug #14013] [Bug #14005]
webrick: fix up r60172 and revert r60189
Thanks to MSP-Greg (Greg L) for helping with this.
* lib/webrick/server.rb (start_thread): ignore ECONNRESET, ECONNABORTED,
EPROTO, and EINVAL on TLS negotiation errors the same way they
were ignored before r60172 in the accept_client method of the
main acceptor thread.
[Bug #14013] [Bug #14005]
webrick: fix up r60172 and r60208
Thanks to MSP-Greg (Greg L) for helping with this.
* lib/webrick/server.rb (start_thread): fix non-local return
introduced in r60208
webrick: fix up r60172 and r60210
Thanks to MSP-Greg (Greg L) for helping with this.
* lib/webrick/server.rb (start_thread): properly fix non-local return
introduced in r60208 and r60210
Thu Nov 30 23:37:08 2017 Nobuyoshi Nakada
parse.y: fix line in rescue
* parse.y (set_line_body, primary): fix line number of bodystmt as the
beginning of the block. [Bug #13181]
Thu Nov 30 23:29:00 2017 SHIBATA Hiroshi
Merge rubygems-2.6.14 changes.
It fixed http://blog.rubygems.org/2017/10/09/unsafe-object-deserialization-vulnerability.html
Fri Sep 15 05:40:40 2017 URABE Shyouhei
fix --with-gmp (broken by r57490)
Looking at the generated shell script (also the autoconf manual), it
seems AC_SEARCH_LIBS() m4 macro does not define HAVE_LIBsomething C
preprocessor macros, unlike AC_CHECK_LIB() which does define them.
This previous change effectively killed building with GMP because
building that mode depends on existence of HAVE_LIBGMP. [Bug #13402]
Thu Sep 14 20:25:55 2017 Yusuke Endoh
lib/webrick/log.rb: sanitize any type of logs
It had failed to sanitize some type of exception messages. Reported and
patched by Yusuke Endoh (mame) at https://hackerone.com/reports/223363
Thu Sep 14 13:32:39 2017 Nobuyoshi Nakada
parse.y: empty hash in defined
* parse.y (command): NODE_ARRAY with NULL is invalid. traversal
in defined_expr0 is simplified than iseq_compile_each0.
[ruby-core:82113] [Bug #13756]
Thu Sep 14 13:26:31 2017 Nobuyoshi Nakada
string.c: fix false coderange
* string.c (rb_enc_str_scrub): enc can differ from the actual encoding
of the string, the cached coderange is useless then. [Bug #13874]
Thu Sep 14 13:24:51 2017 Nobuyoshi Nakada
parse.y: primary should not be 0
* parse.y (primary): should not be 0, since it can be a receiver.
[ruby-core:82447] [Bug #13836]
Thu Sep 14 13:19:30 2017 Nobuyoshi Nakada
vm_method.c: alias warning at refined method
* vm_method.c (rb_method_entry_make): suppress a warning at
refined method which will not be redefined.
[ruby-core:82385] [Bug #13817]
Thu Sep 14 13:14:19 2017 NAKAMURA Usaku
* ext/bigdecimal/bigdecimal.c (BigDecimal_hash): st_index_t may not be
fixable on 64bit mswin/mingw.
* ext/date/date_core.c (d_lite_hash): ditto.
[Backport #13877]
* ext/openssl/ossl_bn.c (ossl_bn_hash): ditto.
Sat Sep 9 23:05:31 2017 Kazuki Yamaguchi
asn1: fix out-of-bounds read in decoding constructed objects
* OpenSSL::ASN1.{decode,decode_all,traverse}: have a bug of
out-of-bounds read. int_ossl_asn1_decode0_cons() does not give the
correct available length to ossl_asn1_decode() when decoding the
inner components of a constructed object. This can cause
out-of-bounds read if a crafted input given.
Reference: https://hackerone.com/reports/170316
https://github.com/ruby/openssl/commit/1648afef33c1d97fb203c82291b8a61269e85d3b
Sat Sep 9 22:57:24 2017 SHIBATA Hiroshi
* ext/json: bump to version 1.8.3.1. [Backport #13853]
Sat Sep 9 22:50:10 2017 NARUSE, Yui
A HTTP Header value must not contain CR or LF.
to_str -> to_s
* lib/net/http/header.rb (set_field): `val` can not have `to_str`.
Sat Sep 9 22:42:22 2017 Kouhei Sutou
* REXML: Fix a bug that unexpected methods can be called as a XPath
function. [HackerOne:249295] Reported by Andrea Jegher. Thanks!!!
Sat Sep 9 22:16:01 2017 SHIBATA Hiroshi
* lib/rubygems: fix several vulnerabilities in RubyGems; bump to version
2.5.2.1. [Backport #13842]
Wed Aug 9 22:27:23 2017 NAKAMURA Usaku
* test/ruby/test_syntax.rb (test_invalid_{break,next}): use
assert_in_out_err instead of assert_syntax_error because on ruby_2_3
assert_syntax_error uses eval.
Wed Aug 9 22:27:23 2017 Nobuyoshi Nakada
* compile.c (iseq_compile_each0): turned dregx context in "once"
into "guarded" type from "block" type, to disallow `next`,
`break`, `redo` as well as outside "once".
[Bug #13690]
Wed Aug 9 21:28:34 2017 NAKAMURA Usaku
* test/ruby/test_process.rb (test_rlimit_{name,value}): test in UTF-8
encoding. fix test failures introduced at r59531 on some platforms.
Wed Aug 9 21:16:22 2017 Nobuyoshi Nakada
* marshal.c (rb_marshal_dump_limited): do not free dump_arg, which
may be dereferenced in check_dump_arg due to continuation, and
get rid of dangling pointers.
* marshal.c (rb_marshal_load_with_proc): ditto for load_arg.
Wed Aug 9 21:13:24 2017 NAKAMURA Usaku
* compile.c (iseq_compile_each): remove unused definition of unused
variable derived from original patch.
Wed Aug 9 19:45:16 2017 sorah (Shota Fukumori)
Init_frozen_strings definition is removed in r51511.
https://bugs.ruby-lang.org/issues/11423
Patch by Kohei Suzuki
* internal.h: Remove declaration of unexist function
[Fix GH-1558]
Wed Aug 9 19:34:17 2017 Nobuyoshi Nakada
* internal.h (THROW_DATA_P): parenthesize the argument which is
casted.
Wed Aug 9 19:34:17 2017 Koichi Sasada
* vm.c: get return_value from imemo_throw_data object (THROW_DATA_VAL()).
imemo_throw_data (TAG_BREAK) contains returned value.
However, imemo_throw_data (TAG_BREAK) can skip several frames so that
we need to use it only once (at most internal frame). To record it,
we introduced THROW_DATA_CONSUMED and check it.
* internal.h: define THROW_DATA_CONSUMED flag.
* test/ruby/test_settracefunc.rb: add tests for [Bug #13369]
* vm_insnhelper.h: add THROW_DATA_CONSUMED_P() and
THROW_DATA_CONSUMED_SET().
Wed Aug 9 19:32:17 2017 Nobuyoshi Nakada
* random.c (get_rnd, try_get_rnd): ensure initialized to get rid
of crash in forked processes. [Bug #13753]
Wed Aug 9 19:30:34 2017 Nobuyoshi Nakada
* ext/strscan/strscan.c (strscan_aref): fix segfault after
get_byte or getch which do not apply regexp.
[Bug #13759]
Wed Aug 9 19:28:40 2017 Nobuyoshi Nakada
* configure.in: add rpath flags which is needed for OPTDIR as well
as -L options, when it is given. [Bug #13411]
Wed Aug 9 19:14:07 2017 Nobuyoshi Nakada
* vm_insnhelper.c (vm_throw_start): size of catch table has been
included in iseq_catch_table struct, which could be NULL, since
2.2. e.g., proc-closure in `once'.
Wed Aug 9 19:09:20 2017 Nobuyoshi Nakada
* node.h (nd_line): should sign-extend. shifting `VALUE` extends
with zero bits if `sizeof(VALUE)` equals to `sizeof(int)`. the
zero bits are truncated if `sizeof(VALUE)` is bigger enough.
[ruby-core:80920] [Bug #13523]
Wed Aug 9 17:53:09 2017 NAKAMURA Usaku
* compile.c (iseq_compile_each): the lifetime of new_opt have to be
until this case block is end. this is a part of r57971.
[Backport #13766]
Wed Aug 9 17:35:47 2017 SHIBATA Hiroshi
this patch contains r54158, r57410, r57631 and r57954.
Prevent GC by volatile [Bug #13150]
test/ruby/test_marshal.rb test_context_switch (load) and test_gc (dump)
are failed on FreeBSD 10.3 and gcc7 (FreeBSD Ports Collection) 7.0.0
20170115 (experimental); RB_GC_GUARD looks not worked well.
* include/ruby/ruby.h (RB_GC_GUARD): prevent guarded pointer from
optimization by using as an input to inline asm.
* ruby.h: remove comment
* include/ruby/ruby.h (RB_GC_GUARD): remove comment unsupported by
Solaris AS.
Hidden objects (klass == 0) are not visible to Ruby code invoked
from other threads or signal handlers, so they can never be
accessed from other contexts. This makes it safe to call
rb_gc_force_recycle on the object slot after releasing malloc
memory.
* marshal.c (rb_marshal_dump_limited): hide dump_arg and recycle when
done (rb_marshal_load_with_proc): hide load_arg and recycle when done
[ruby-core:79518]
* marshal.c (rb_marshal_dump_limited): do not free dump_arg, which
may be dereferenced in check_dump_arg due to continuation, and
get rid of dangling pointers.
* marshal.c (rb_marshal_load_with_proc): ditto for load_arg.
Wed Aug 9 17:28:35 2017 Nobuyoshi Nakada
* eval.c (setup_exception): make unfrozen copy of special
exception before setting up a cause.
Wed Aug 9 17:22:29 2017 TAKANO `takano32' Mitsuhiro
a64: fix crash on register stack mark/sweep pass
* thread_pthread.c: move 'register_stack_start' earlier.
[ruby-core:79928] [Bug #13284] [Fix GH-1625]
Author: Sergei Trofimovich
Wed Aug 9 17:10:27 2017 Shugo Maeda
* test/net/smtp/test_smtp.rb (test_tls_connect, test_tls_connect):
use Socket.tcp_server_sockets in case localhost is resolved to ::1.
Wed Aug 9 17:10:27 2017 Shugo Maeda
* lib/net/smtp.rb (tlsconnect): support timeout for TLS handshake.
[ruby-core:76893] [Bug #12678]
* lib/net/protocol.rb (ssl_socket_connect): new method to implement
timeout for TLS handshake.
* lib/net/http.rb (connect): use Net::Protocol#ssl_socket_connect.
Wed Aug 9 17:08:01 2017 NARUSE, Yui
Zlib::GzipReader#pos underflows after calling #ungetbyte or #ungetc at start of file [Bug #13616]
patched by Andrew Haines [ruby-core:81488]
zlib.c: fix unnormalized Fixnum
* ext/zlib/zlib.c (rb_gzfile_total_out): cast to long not to
result in an unsigned long to normalized to Fixnum on LLP64
platforms. [ruby-core:81488]
Wed Aug 9 17:03:00 2017 Eric Wong
process.c: handle dynamic :rlimit_* symbols in spawn execopts
* process.c (rb_execarg_addopt_rlimit): hoist out of rb_execarg_addopt
(rlimit_type_by_sym): new wrapper for dynamic symbol
(rb_execarg_addopt): check for dsym via rlimit_type_by_sym
* test/ruby/test_process.rb (test_execopts_rlimit): check dsym w/o pindown
Add extra check for bogus rlimit args, too.
[ruby-core:82033] [Bug #13744]
process.c: null bytes
* process.c (rlimit_type_by_sym): prohibit null bytes in key
names. [ruby-core:82033] [Bug #13744]
Wed Aug 9 16:56:52 2017 Nobuyoshi Nakada
optparse.rb: get rid of eval
* lib/optparse.rb: try Float() and Integer() instead of eval,
which does too much things.
Fri Jul 7 10:58:10 2017 Eric Wong
This backport of r58812 is necessary to ease backporting r59028,
which fixes a real bug.
* thread.c (struct waiting_fd): declare
(rb_thread_io_blocking_region): use on-stack list waiter
(rb_notify_fd_close): walk vm->waiting_fds instead
(call_without_gvl): remove old field setting
(th_init): ditto
[Feature #9632]
* vm_core.h (typedef struct rb_vm_struct): add waiting_fds list
* (typedef struct rb_thread_struct): remove waiting_fd field
(rb_vm_living_threads_init): initialize waiting_fds list
This should fix bad interactions with test_race_gets_and_close
in test/ruby/test_io.rb since we ensure rb_notify_fd_close
continues returning the busy flag after enqueuing the interrupt.
* thread.c (rb_notify_fd_close): do not enqueue multiple interrupts
[ruby-core:81581] [Bug #13632]
* test/ruby/test_io.rb (test_single_exception_on_close):
new test based on script from Nikolay
Wed Jul 5 15:55:35 2017 NAKAMURA Usaku
* ext/openssl/ossl_cipher.c: remove the encryption key initialization
from Cipher#initialize. This is effectively a revert of r32723
("Avoid possible SEGV from AES encryption/decryption", 2011-07-28).
the patch is derived from https://github.com/ruby/openssl/commit/8108e0a6db133f3375608303fdd2083eb5115062,
written by Kazuki Yamaguchi.
[Backport #8221]
Sat Jul 1 00:28:22 2017 SHIBATA Hiroshi
* ext/psych/yaml: update libyaml to 0.1.7.
* ext/psych/psych.gemspec: bump version to 2.1.0.1.
Fri Jun 30 22:05:39 2017 Nobuyoshi Nakada
* parse.y (parser_precise_mbclen): check invalid multibyte char at
skipping strings following ?x literal string, not to stuck in a
infinite loop. [Bug #13672]
Fri Jun 30 22:00:56 2017 Nobuyoshi Nakada
* ext/pathname/lib/pathname.rb (Pathname#plus): UNC root pathname needs
a separator. File.basename returns "/" on UNC root, as well as sole
drive letter, even if it does not end with a separator. [Bug #13515]
Fri Jun 30 21:57:27 2017 Kouhei Sutou
* lib/rexml/parsers/streamparser.rb: add close tag check on end of
document to StreamParser [Bug #13636]
Reported by Anton Sivakov. Thanks!!!
Fri Jun 30 21:54:01 2017 Nobuyoshi Nakada
* array.c (rb_ary_insert): check position to insert even if no elements
to be inserted. [Bug #13558]
Fri Jun 30 21:51:40 2017 Marcus Stollsteimer
* ext/date/date_core.c: [DOC] fix documentation for %Z format of
{Date,DateTime}.strftime.
Reported by Damon Timm. Based on a patch by nano.
[Bug #13231] [Fix GH-1565]
Fri Jun 30 21:46:50 2017 Kouhei Sutou
* lib/rss/rss.rb: Accept empty text element as valid element
Parser has been accepted it but XML serializer wasn't accepted.
Reported by stefano frabetti. Thanks!!!
[Bug #13531]
Fri Jun 30 21:40:42 2017 Kazuki Yamaguchi
* ext/openssl/ossl_x509store.c: clear error queue after calling
X509_LOOKUP_load_file()
X509_LOOKUP_load_file(), which ends up calling
X509_load_cert_crl_file()
internally, may leave error entries in the queue even when it returns
non-zero value (which indicates success).
This will be fixed by OpenSSL 1.1.1, but can be worked around by
clearing the error queue ourselves.
Fixes: [Backport #11033]
Fri Jun 30 21:35:16 2017 Nobuyoshi Nakada
* gc.c (heap_page_allocate): expand sorted pages before inserting
allocated new page. [Bug #12670]
Fri Jun 30 21:33:39 2017 Koichi Sasada
* gc.c (heap_page_resurrect): do not return tomb_pages when
page->freelist == NULL.
[Bug #12670]
Fri Jun 30 21:23:20 2017 Nobuyoshi Nakada
* vsnprintf.c (BSD_vfprintf): sign and hex-prefix should not be counted
in precision. [Bug #8916]
Fri Jun 30 21:20:14 2017 Koichi Sasada
* thread.c (ruby_thread_stack_overflow): disable VM events when stack
overflow occurred; it causes another stack overflow again in making
backtrace object, and crashes. [Bug #13425]
* vm.c (hook_before_rewind): skip rewind hooks if err is
SystemStackError because rewind hooks can cause stack overflow again
and again.
* thread.c (ruby_thread_stack_overflow): do not disable all hooks.
Additionally, clearing ruby_vm_event_flags is not suitable way
to disable hooks.
Fri Jun 30 21:13:25 2017 Nobuyoshi Nakada
* proc.c (method_super_method): skip prepended modules and continue from
the super class of the original class. [Bug #13656]
Fri Jun 30 21:10:48 2017 Shugo Maeda
* lib/net/smtp.rb (getok, get_response): raise an ArgumentError when
CR or LF is included in a line, because they are not allowed in
RFC5321. Thanks, Jeremy Daer.
Fri Jun 30 21:07:56 2017 NAKAMURA Usaku
* eval.c (exc_setup_cause): need to unfreeze(=dup) the exception before
setting cause if its frozen.
Fri Jun 30 21:07:14 2017 Eric Wong
thread.c: avoid busy looping on rb_thread_fd_close
We no longer use it this function, but extensions do, and
we need to ensure it continues to work for them.
* thread.c (rb_thread_fd_close): schedule other threads in loop
* ext/-test-/thread_fd_close/thread_fd_close.c: new file
* ext/-test-/thread_fd_close/depend: ditto
* ext/-test-/thread_fd_close/extconf.rb: ditto
* test/-ext-/thread_fd_close/test_thread_fd_close.rb: new test
Fri Jun 30 20:34:49 2017 Kazuhiro NISHIYAMA
* sample/pty/shl.rb: update sample
* Specify frozen_string_literal: true.
* Fix TypeError of raise.
* Use a character literal instead of Integer.
Fri Jun 30 20:31:59 2017 Marcus Stollsteimer
* string.c: [DOC] clarify docs for String#split when called with limit
and capture groups. Reported by Cichol Tsai. [Bug #13621]
Fri Jun 30 20:23:31 2017 Takashi Kokubun
* lib/erb.rb: Allow explicit trimming carriage return when trim_mode is
"-", for Windows environments. [Bug #5339]
* lib/erb.rb: Allow trimming CR in all trim_modes to unify a behavior
with r58823 and r58825.
Fri Jun 30 20:16:15 2017 Takashi Kokubun
* lib/erb.rb: Allow trimming carriage return when trim_mode is "<>", for
Windows environments. [Bug #11464]
Fri Jun 30 20:07:37 2017 NARUSE, Yui
* util.c (ruby_strtod) Merge latest dtoa.c [Bug #13545]
Apply some part of http://www.netlib.org/fp/dtoa.c with my eyes...
Fri Jun 30 20:00:18 2017 Nobuyoshi Nakada
* dir.c (is_case_sensitive): use getattrlist() if fgetattrlist() is
unavailable, on OSX 10.5. [Bug #11054]
Fri Jun 30 19:58:16 2017 Nobuyoshi Nakada
* tool/mkconfig.rb (RbConfig): prefix SDKROOT to oldincludedir
not includedir, the latter is outside the ruby installation.
[ruby-core:72496] [Bug #11881]
Fri Jun 30 19:56:06 2017 Eric Wong
* variable.c (check_autoload_required): do not assume a provided feature
means autoload is complete, always wait if autoload is being performed
by another thread. [Bug #11384] Thanks to s.wanabe@gmail.com
Fri Jun 30 19:53:30 2017 Nobuyoshi Nakada
* process.c (obj2uid, obj2gid): use temporary string as the buffer
instead of rb_alloc_tmp_buffer, which is NODE_ALLOCA since r51492.
[Bug #13554]
Fri Jun 30 19:50:25 2017 Eric Wong
* variable.c (autoload_reset): use idempotent list_del_init
* variable.c (autoload_sleep): moved code from rb_autoload_load
* variable.c (autoload_sleep_done): cleanup for use with rb_ensure
* variable.c (rb_autoload_load): ensure list delete happens in case the
thread dies during sleep
* test/ruby/bug-13526.rb: new script for separate execution
* test/ruby/test_autoload.rb (test_bug_13526): new test [Bug #13526]
Fri Jun 30 19:46:46 2017 Nobuyoshi Nakada
* sprintf.c (rb_str_format): while "% 2f" and "% 4f" result in " Inf"
and " Inf" respectively, "% 3f" results in "Inf" (no space).
* sprintf.c (rb_str_format): as for non-finite float, calculate the
exact needed size with the space flag.
Fri Jun 30 19:41:48 2017 Nobuyoshi Nakada
* thread_win32.c (w32_wait_events): do not acquire GVL, to fix deadlock
at read/close race condition. instead, just ignore interrupt_event if
it is closed.
* thread_win32.c (w32_wait_events): fix wait object index in the case of
interrupt_event is not usable.
Fri Jun 30 19:37:47 2017 KOSAKI Motohiro
* io.c (nogvl_wait_for_single_fd): nogvl_wait_for_single_fd must wait
as its name.
poll(fds, n, 0) mean no timeout and immediately return. If you want to
wait something, you need to use -1 instead.
Fri Jun 30 19:35:31 2017 Nobuyoshi Nakada
* class.c (Init_class_hierarchy): prevent rb_cObject which is the class
tree root, from GC. [Bug #12492]
Fri Jun 30 19:32:52 2017 Nobuyoshi Nakada
* class.c (Init_class_hierarchy): prevent rb_cObject which is the
class tree root, from GC. [ruby-dev:49666] [Bug #12492]
Fri Jun 30 19:29:45 2017 Nobuyoshi Nakada
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): fix for nested
indedented here documents, where Elems are nested too. [Bug #13536]
* ext/ripper/lib/ripper/lexer.rb (on_heredoc_dedent): insert stripped
leading spaces as on_ignored_sp elements, so that the original source
can be reconsructed. [Bug #13536]
Mon May 1 06:36:57 2017 NAKAMURA Usaku
* parse.y (parser_parse_string): set the mark of term to `nd_func`
because in this version `u2.id` is not used for this purpose.
fixed failure of ruby/spec introduced at r58518.
see also [Backport #13363]
Sun Apr 30 23:01:00 2017 Nobuyoshi Nakada
class.c: ensure_includable
* class.c (ensure_includable): extract checks to include and
prepend.
class.c: prohibit refinement module
* class.c (ensure_includable): cannot include refinement
module, or the type and the class do not match.
[ruby-core:79632] [Bug #13236]
Sun Apr 30 22:55:41 2017 Nobuyoshi Nakada
keep line number after unterminated string literal
* parse.y (parser_parse_string): keep line number even after an
unterminated string literal. it does not matter in the parser,
ripper needs this value after this error.
parse.y: unterminated content token
* parse.y (parser_parse_string): defer the end token to next
reading, to yield tSTRING_CONTENT with the unterminated content.
[Bug #13363]
Sun Apr 30 22:52:38 2017 Marcus Stollsteimer
* io.c: [DOC] expand docs for IO#puts
[Bug #13306]
Sun Apr 30 22:38:44 2017 Nobuyoshi Nakada
sample/pty/shl.rb: update [ci skip]
* sample/pty/shl.rb: stop writer loop when the child exited.
PTY::ChildExited no longer raises asynchronously since r20298.
[ruby-dev:49974] [Bug #13191]
* sample/pty/shl.rb: use io/console instead of stty.
[ruby-dev:49974] [Bug #13191]
* sample/pty/shl.rb: do not manage array length separately.
[ruby-dev:49974] [Bug #13191]
* sample/pty/shl.rb: leap exited child process.
[ruby-dev:49974] [Bug #13191]
Sun Apr 30 22:35:10 2017 Nobuyoshi Nakada
configure.in: use AC_SEARCH_LIBS
* configure.in (--with-gmp, --with-jemalloc): use AC_SEARCH_LIBS
to check if no library is required, instead of AC_CHECK_LIB.
[ruby-core:79368] [Bug #13175]
Sun Apr 30 22:24:25 2017 Nobuyoshi Nakada
* numeric.c (flo_round): [EXPERIMENTAL] adjust the case that the
receiver is close to the exact but unrepresentable middle value
of two values in the given precision.
http://d.hatena.ne.jp/hnw/20160702
Sun Apr 9 22:21:23 2017 NAKAMURA Usaku
thread.c: rb_thread_fd_close [ci skip]
* thread.c (rb_thread_fd_close): re-define because of a couple of
external libraries used it.
Wed Mar 29 23:47:31 2017 CHIKANAGA Tomoyuki
* hash.c (any_hash): fix CI failure on L32LLP64 architecture.
The patch was provided by usa. [ruby-core:80484] [Bug #13376]
Wed Mar 29 06:22:27 2017 CHIKANAGA Tomoyuki
* hash.c (any_hash): fix Symbol#hash to be nondeterministic.
The patch was provided by Eric Wong. [ruby-core:80433] [Bug #13376]
* test/ruby/test_symbol.rb: add test for above.
Tue Mar 28 00:38:39 2017 NAKAMURA Usaku
* win32/win32.c (poll_child_status): rb_w32_wait_events_blocking() sets
errno internally, then should not set it here.
Mon Mar 27 20:15:17 2017 Kazuki Tsujimoto
* eval.c, method.h, proc.c, vm.c, vm_eval.c, vm_insnhelper.c, vm_method.c:
TracePoint#method_id should return method_id, not callee_id.
[ruby-core:77241] [Feature #12747]
* test/ruby/test_settracefunc.rb: change accordingly.
Mon Mar 27 20:12:23 2017 Anton Davydov
* lib/uri/mailto.rb: Removed needless `return` and use `.`` instead of `::`
with class method.
* test/uri/test_mailto.rb: Added tests for coverage.
Mon Mar 20 06:35:08 2017 Nobuyoshi Nakada
* ruby.c (process_options): convert -e script to the encoding
given by a command line option on Windows. assume it is the
expected encoding. [ruby-dev:49461] [Bug #11900]
Mon Mar 20 05:47:49 2017 Koichi Sasada
* test/ruby/test_exception.rb: fix thread issues.
* use Queue instead of a local variable for synchronization.
* join created thread to soleve leaking threads warning.
Mon Mar 20 05:47:49 2017 Nobuyoshi Nakada
* thread.c (rb_threadptr_raise): set cause from the called thread,
but not from the thread to be interrupted.
[ruby-core:77222] [Bug #12741]
Wed Feb 8 02:17:02 2017 Nobuyoshi Nakada
* lib/forwardable.rb (Forwardable._delegator_method): extract
method generator and deal with non-module objects.
[ruby-dev:49656] [Bug #12478]
Wed Feb 8 02:17:02 2017 Nobuyoshi Nakada
* lib/forwardable.rb (def_instance_delegator): adjust backtrace of
method body by tail call optimization. adjusting the delegated
target is still done by deleting backtrace.
* lib/forwardable.rb (def_single_delegator): ditto.
Tue Jan 17 03:51:48 2017 Nobuyoshi Nakada
* compile.c (setup_args): duplicate splatting array if more
arguments present to obey left-to-right execution order.
[ruby-core:77701] [Bug# 12860]
Thu Nov 24 05:47:18 2016 CHIKANAGA Tomoyuki
* test/fileutils/test_fileutils.rb (TestFileUtils#setup): Use primary
group as well as supplementary groups.
based on the patch by Vit Ondruch at [Bug #12910]
Thu Nov 24 05:44:04 2016 CHIKANAGA Tomoyuki
* test/ruby/test_dir_m17n.rb: Don't encode to UTF-8 if it's unnecessary.
If the file system encoding is ISO-8851-1 or if the encoding of the
target string is invalid, don't encode to UTF-8. [Bug#12972]
Mon Nov 21 16:55:15 2016 boshan
* lib/tempfile.rb (Tempfile#initialize): [DOC] the first parameter
`basename` is optional and defaulted to an empty string since
[GH-523]. [Fix GH-1225]
Sat Nov 19 14:06:07 2016 CHIKANAGA Tomoyuki
* iseq.c (proc_dup): don't duplicate sym_procs. [Fix GH-1479]
[ruby-core:78100] [Bug #12927]
Based on the patch provided by Emiliano Ritiro.
Sat Nov 19 11:48:47 2016 Nobuyoshi Nakada
* iseq.c (iseqw_s_compile_file): deal with syntax error as well as
compile, and should not abort when rescued.
Wed Nov 16 23:40:29 2016 CHIKANAGA Tomoyuki
* vm_eval.c (vm_call0_body): refined module should not be skipped as
prepended. [Bug #12920]
Tue Nov 15 03:14:02 2016 NARUSE, Yui
* ext/-test/file/fs.c (get_atime_p): Updating of file access times
is enabled or not.
Tue Nov 15 03:14:02 2016 Nobuyoshi Nakada
* test/ruby/test_file.rb (TestFile#test_stat): fix noatime case.
[ruby-core:77943] [Bug #12903]
Tue Nov 15 03:09:39 2016 Shugo Maeda
* test/rinda/test_rinda.rb (test_make_socket_ipv6_multicast,
test_make_socket_ipv6_multicast_hops): skip if IPv6 multicast
address is not available.
Tue Nov 15 02:49:30 2016 Nobuyoshi Nakada
* vm_eval.c (vm_call0_body): follow the original class, not to
loop the prepended module. [ruby-core:77784] [Bug #12876]
Tue Nov 15 02:45:44 2016 NARUSE, Yui
* lib/net/http.rb (transport_request): other than HTTPContinue
in 1xx (HTTPInformation) also needs to continue. [Bug #12890]
Sat Nov 12 01:05:45 2016 SHIBATA Hiroshi
* object.c: Improve documentation for Float conversion.
[ruby-core:71661][Bug #11736][ci skip]
Sat Nov 12 00:50:35 2016 Nobuyoshi Nakada
* proc.c (mnew_internal): follow the original class, not to loop
the prepended module. [ruby-core:77591] [Bug #12832]
Sat Nov 12 00:46:50 2016 Shugo Maeda
* cont.c (cont_new): disable optimization if clang's version is
3.8.0. [ruby-core:77894] [Bug #12893]
Sat Nov 12 00:27:24 2016 Nobuyoshi Nakada
* compile.c (iseq_peephole_optimize): enable tail call
optimization inside a conditional block.
Sat Nov 5 11:53:17 2016 Nobuyoshi Nakada
* io.c (copy_stream_body): use IO to write to copy to duplex IO.
http://twitter.com/knu/status/786505317974585344
Sat Nov 5 11:49:41 2016 Nobuyoshi Nakada
* sprintf.c (rb_str_format): format exact number more exactly.
Sat Nov 5 11:45:32 2016 Kazuki Yamaguchi
* ext/openssl/ossl.c (Init_openssl): register an ex_data index for
X509_STORE and X509_STORE_CTX respectively. Since they don't share
the ex_data index registry, we can't use the same index.
(ossl_verify_cb): use the the correct index.
* ext/openssl/ossl_ssl.c (ossl_ssl_verify_callback): ditto.
* ext/openssl/ossl_x509store.c (ossl_x509store_set_vfy_cb): ditto.
(ossl_x509stctx_verify): ditto.
* ext/openssl/ossl.h (void ossl_clear_error): add extern declarations
of ossl_store_{ctx_,}ex_verify_cb_idx.
* ext/openssl/openssl_missing.c: remove X509_STORE_set_ex_data and
X509_STORE_get_ex_data.
* ext/openssl/openssl_missing.h: implement X509_STORE_get_ex_data,
X509_STORE_set_ex_data and X509_STORE_get_ex_new_index as macros.
Sat Nov 5 11:35:58 2016 Nobuyoshi Nakada
* thread.c (rb_thread_pending_interrupt_p): no pending interrupt
before initialization.
* thread.c (thread_raise_m, rb_thread_kill): uninitialized thread
cannot interrupt. [ruby-core:72732] [Bug #11959]
Sat Nov 5 11:16:58 2016 Kenta Murata
* ext/bigdecimal/bigdecimal.c: Import changes from ruby/bigdecimal
repository.
Tue Oct 18 02:58:22 2016 Kazuki Yamaguchi
* eval_intern.h (TH_PUSH_TAG): Initialize struct rb_vm_tag::tag with
Qundef rather than 0 which is equal to Qfalse. Since Kernel#throw(obj)
searches a tag with rb_vm_tag::tag == obj, throw(false) can
accidentally find an unrelated tag which is not created by
Kernel#catch. [ruby-core:77229] [Bug #12743]
* test/ruby/test_exception.rb (test_throw_false): Add a test case for
this.
Tue Oct 18 02:24:29 2016 Aurelien Jacobs
* lib/logger.rb (Logger::Period#next_rotate_time): fix monthly log
rotate when DST is applied during a month of 31 days.
[Fix GH-1458]
Wed Oct 12 22:31:09 2016 SHIBATA Hiroshi
* tool/downloader.rb: Removed verification of gem certification.
Because signed gem is not working on rubygems ecosystem.
* tool/gem-unpack.rb: ditto.
Fri Oct 7 02:48:06 2016 CHIKANAGA Tomoyuki
* lib/rubygems/ssl_certs/GlobalSignRootCA.pem: add for RugyGems.org.
Mon Sep 26 23:51:31 2016 Nobuyoshi Nakada
* variable.c (rb_const_search): raise with the actual class/module
name which defines the private constant.
Mon Sep 26 23:34:09 2016 Kazuki Yamaguchi
* ext/openssl/ossl_pkcs12.c (ossl_pkcs12_initialize): pop errors
leaked by PKCS12_parse(). This is a bug in OpenSSL, which exists
in the versions before the version 1.0.0t, 1.0.1p, 1.0.2d.
Mon Sep 26 23:10:43 2016 NARUSE, Yui
* vm_dump.c (backtrace): use rip in the saved context for the case
the SIGSEGV is received when the process is in userland.
Note that ip in the stack should be used if the signal is received
when it is in kernel (when it is calling syscall) [Bug #12711]
Mon Sep 26 20:23:32 2016 CHIKANAGA Tomoyuki
* gems/bundled_gems: update minitest to 5.8.5.
* tool/downloader.rb: revert workarounds.
* tool/gem-unpack.rb: ditto.
Mon Sep 26 07:26:44 2016 CHIKANAGA Tomoyuki
* tool/gem-unpack.rb: don't set security policy.
workaround for certificate expiration of minitest-5.8.3.gem.
Mon Sep 26 06:33:16 2016 Aaron Patterson
* lib/uri/generic.rb (def check_password): don't include bad password
in URI exception output
* test/uri/test_generic.rb (def test_set_component): test for behavior
Mon Sep 26 06:20:58 2016 CHIKANAGA Tomoyuki
* tool/downloader.rb: comment out gem package verification.
workaround for certificate expiration of minitest-5.8.3.gem.
Sun Sep 25 16:37:22 2016 NAKAMURA Usaku
* io.c (nogvl_fsync, nogvl_fdatasync): on Windows, just ignore if the
fd is associated to non-disk device. if call fsync and/or fdatasync
with such fds, it causes Errno::EBADF exception and the behavior is
incompatible with ruby 2.1 and earlier unintentionally introduced.
Sun Sep 25 15:09:04 2016 Kazuki Tsujimoto
* array.c (flatten): use rb_obj_class instead of rb_class_of
because rb_class_of may return a singleton class.
[ruby-dev:49781] [Bug #12738]
Sun Sep 25 15:07:19 2016 Nobuyoshi Nakada
* man/irb.1: remove useless -width option.
[ruby-dev:49767] [Bug #12692]
Tue Aug 30 05:24:33 2016 Kazuki Yamaguchi
* ext/openssl/ossl_x509ext.c: additional fix memory leak.
[ruby-core:76922] [Bug #12680]
* text/openssl/test_x509ext.rb: test for above.
Sun Aug 28 00:26:58 2016 CHIKANAGA Tomoyuki
* vm_method.c: revert r55869. it breaks Integer#days with
ActiveSupport-4.1.x. [ruby-core:76949] [Bug #12353]
* test/ruby/test_marshal.rb: ditto.
Sat Aug 27 03:51:23 2016 Nobuyoshi Nakada
* id_table.c (hash_table_extend): should not shrink the table than
the previous capacity. [ruby-core:76534] [Bug #12614]
Sat Aug 27 03:37:49 2016 Kazuki Yamaguchi
* ext/openssl/ossl_config.c: fix memory leak.
[ruby-core:76922] [Bug #12680]
* ext/openssl/ossl_ocsp.c: ditto.
* ext/openssl/ossl_pkcs12.c: ditto.
* ext/openssl/ossl_pkcs7.c: ditto.
* ext/openssl/ossl_pkey_ec.c: ditto.
* ext/openssl/ossl_x509.h: ditto.
* ext/openssl/ossl_x509attr.c: ditto.
* ext/openssl/ossl_x509crl.c: ditto.
* ext/openssl/ossl_x509ext.c: ditto.
* ext/openssl/ossl_x509req.c: ditto.
* ext/openssl/ossl_x509revoked.c: ditto.
Thu Aug 25 00:19:24 2016 SHIBATA Hiroshi
* lib/rubygems/specification.rb: `coding` is affect only first line except
shebang.
* lib/rubygems/package.rb, lib/rubygems/package/*: ditto.
Thu Aug 25 00:19:24 2016 SHIBATA Hiroshi
* lib/rubygems.rb, lib/rubygems/*, test/rubygems/*: Update rubygems-2.5.2.
It supports to enable frozen string literal and add `--norc` option for
disable to `.gemrc` configuration.
See 2.5.2 release notes for other fixes and enhancements.
https://github.com/rubygems/rubygems/blob/a8aa3bac723f045c52471c7b9328310a048561e0/History.txt#L3
Wed Aug 24 23:54:40 2016 Charles Oliver Nutter
* test/ruby/test_array.rb: split out the test for no stack error
on large input for test_permutation, test_repeated_permutation,
and test_repeated_combination, and make them all timeout:30.
Tue Aug 23 03:22:34 2016 Naohisa Goto
* test/fiddle/test_pointer.rb (test_to_str, test_to_s, test_aref_aset):
Attempt to use independent strings for destructive tests that
directly modify values on memory by using Fiddle::Pointer.
[Bug #12537] [ruby-dev:49700]
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c (str_buf_cat): Fix capa size for embed string.
Fix bug in r55547. [Bug #12536]
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c (rb_str_change_terminator_length): New function to change
termlen and resize heap for the terminator. This is split from
rb_str_fill_terminator (str_fill_term) because filling terminator
and changing terminator length are different things. [Bug #12536]
* internal.h: declaration for rb_str_change_terminator_length.
* string.c (str_fill_term): Simplify only to zero-fill the terminator.
For non-shared strings, it assumes that (capa + termlen) bytes of
heap is allocated. This partially reverts r55557.
* encoding.c (rb_enc_associate_index): rb_str_change_terminator_length
is used, and it should be called whenever the termlen is changed.
* string.c (str_capacity): New static function to return capacity
of a string with the given termlen, because the termlen may
sometimes be different from TERM_LEN(str) especially during
changing termlen or filling terminator with specific termlen.
* string.c (rb_str_capacity): Use str_capacity.
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c: Partially reverts r55547 and r55555.
ChangeLog about the reverted changes are also deleted in this file.
[Bug #12536] [ruby-dev:49699] [ruby-dev:49702]
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c (str_fill_term): When termlen increases, re-allocation
of memory for termlen should always be needed.
In this fix, if possible, decrease capa instead of realloc.
[Bug #12536] [ruby-dev:49699]
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c: Specify termlen as far as possible.
Additional fix for [Bug #12536] [ruby-dev:49699].
* string.c (str_new_static): Specify termlen from the given encoding
when creating a new String object is needed.
* string.c (rb_tainted_str_new_with_enc): New function to create a
tainted String object with the given encoding. This means that
the termlen is correctly specified. Currently static function.
The function name might be renamed to rb_tainted_enc_str_new
or rb_enc_tainted_str_new.
* string.c (rb_external_str_new_with_enc): Use encoding by using the
above rb_tainted_str_new_with_enc().
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c (rb_str_subseq, str_substr): When RSTRING_EMBED_LEN_MAX
is used, TERM_LEN(str) should be considered with it because
embedded strings are also processed by TERM_FILL.
Additional fix for [Bug #12536] [ruby-dev:49699].
Tue Aug 23 03:14:22 2016 Naohisa Goto
* string.c: Fix memory corruptions when using UTF-16/32 strings.
[Bug #12536] [ruby-dev:49699]
* string.c (rb_str_new_with_class): Use TERM_LEN of the "obj".
* string.c (rb_str_plus, rb_str_justify): Use str_new0 which is aware
of termlen.
* string.c (str_shared_replace): Copy +termlen bytes instead of +1.
* string.c (rb_str_times): termlen should not be included in capa.
* string.c (RESIZE_CAPA_TERM): When using RSTRING_EMBED_LEN_MAX,
termlen should be counted with it because embedded strings are
also processed by TERM_FILL.
* string.c (rb_str_capacity, str_shared_replace, str_buf_cat): ditto.
* string.c (rb_str_drop_bytes, rb_str_setbyte, str_byte_substr): ditto.
Thu Aug 18 23:43:33 2016 Eric Wong
* ext/openssl/ossl_ssl.c (ossl_ssl_write_internal):
avoid undefined behavior
* test/openssl/test_pair.rb (test_write_zero): new test
[ruby-core:76751] [Bug #12660]
Thu Aug 18 23:18:17 2016 Nobuyoshi Nakada
* ext/socket/option.c, ext/socket/rubysocket.h (inet_ntop): share
the fallback definition. [ruby-core:76646] [Bug #12645]
Thu Aug 18 23:07:29 2016 Nobuyoshi Nakada
* vm.c (vm_set_main_stack): remove unnecessary check. toplevel
binding must be initialized. [Bug #12611] (N1)
* win32/win32.c (w32_symlink): fix return type. [Bug #12611] (N3)
* string.c (rb_str_split_m): simplify the condition.
[Bug #12611](N4)
Thu Aug 18 23:06:20 2016 Kouhei Sutou
* lib/rexml/attribute.rb (REXML::Attribute#to_string): Fix wrong
entry reference name of double quote.
[Bug #12609][ruby-core:76509]
Patch by Joseph Marrero. Thanks!!!
Thu Aug 18 23:04:59 2016 Naohisa Goto
* thread.c (rb_wait_for_single_fd): Clean up fds.revents every time
before calling ppoll(2). [Bug #12575] [ruby-dev:49725]
Thu Aug 18 22:52:19 2016 NARUSE, Yui
* vm_args.c (setup_parameters_complex): don't raise ArgumentError
if an array is given for instance_exec with optional argument.
[ruby-core:76300] [Bug #12568]
https://github.com/rails/rails/pull/25699
Tue Aug 16 12:27:48 2016 Koichi Sasada
* gc.c (gc_mark_roots): should mark the VM object itself to mark
singleton class of the VM object.
Before this patch, we only set mark bit for the VM object and
invoke mark function separately.
[Bug #12583]
* test/ruby/test_gc.rb: add a test.
Tue Aug 16 12:01:35 2016 Naohisa Goto
* ext/digest/md5/md5ossl.h: Remove excess semicolons.
Suppress warning on Solaris with Oracle Solaris Studio 12.
[ruby-dev:49692] [Bug #12524]
* ext/digest/md5/md5cc.h: ditto.
* ext/digest/sha1/sha1cc.h: ditto.
* ext/digest/sha1/sha1ossl.h: ditto.
* ext/digest/sha2/sha2cc.h: ditto.
* ext/digest/sha2/sha2ossl.h: ditto.
Tue Aug 16 11:51:52 2016 Nobuyoshi Nakada
* compile.c (ADD_TRACE): ignore trace instruction on non-positive
line.
* parse.y (coverage): get rid of ArgumentError when the starting
line number is not positive. [ruby-core:76141] [Bug #12517]
Tue Aug 16 11:51:52 2016 SHIBATA Hiroshi
* test/coverage/test_coverage.rb: ignored test when enabled to coverage.
It lead to crash with `make test-all`.
Tue Aug 16 11:46:07 2016 NARUSE, Yui
* lib/uri/mailto.rb (initialize): RFC3986_Parser#split sets opaque
only if the URI has path-rootless, not path-empty.
[ruby-core:76055] [Bug #12498]
patched by Chris Heisterkamp
Tue Aug 16 04:57:28 2016 Shugo Maeda
* lib/net/http/generic_request.rb (write_header): A Request-Line must
not contain CR or LF.
Tue Aug 16 04:54:12 2016 Shugo Maeda
* lib/net/ftp.rb (putline): raise an ArgumentError when
CR or LF is included in a line.
Tue Aug 16 04:38:48 2016 Nobuyoshi Nakada
* ext/date/date_strftime.c (date_strftime_with_tmx): reject too
large precision to get rid of buffer overflow.
reported by Guido Vranken .
Tue Aug 16 04:28:22 2016 Nobuyoshi Nakada
* file.c (append_fspath): normalize directory name to be appended
on OS X. [ruby-core:75957] [Ruby trunk Bug#12483]
https://github.com/rails/rails/issues/25303#issuecomment-224834804
Tue Aug 16 04:16:14 2016 NARUSE, Yui
* regcomp.c (noname_disable_map): don't optimize out group 0
Ruby's Regexp doesn't allow normal numbered groups if the regexp
has named groups. On such case it optimizes out related NT_ENCLOSE.
But even on the case it can use \g<0>.
This fix not to remove NT_ENCLOSE whose regnum is 0.
[ruby-core:75828] [Bug #12454]
Tue Aug 16 04:06:52 2016 Nobuyoshi Nakada
* missing/crypt.c: fix size macros to use configured values
for platforms long is larger than 32bit.
[ruby-core:75792] [Bug #12446]
Tue Aug 16 04:03:25 2016 Kazuki Yamaguchi
* ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from
GetBNPtr(). This doesn't raise exception but returns NULL on error.
(GetBNPtr): Raise TypeError if conversion fails.
(ossl_bn_eq): Implement BN#==.
(ossl_bn_eql): #eql? should not raise TypeError even if the argument
is not compatible with BN.
(ossl_bn_hash): Implement BN#hash.
* ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash.
* test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
Tue Aug 16 03:51:59 2016 Nobuyoshi Nakada
* transcode.c (str_transcode0): scrub in the given encoding when
the source encoding is given, not in the encoding of the
receiver. [ruby-core:75732] [Bug #12431]
Tue Aug 16 03:41:21 2016 Kazuki Yamaguchi
* ext/openssl/ossl_pkey_dh.c (ossl_dh_compute_key): Check that the DH
has 'p' (the prime) before calling DH_size(). We can create a DH with
no parameter but DH_size() does not check and dereferences NULL.
[ruby-core:75720] [Bug #12428]
* ext/openssl/ossl_pkey_dsa.c (ossl_dsa_sign): Ditto. DSA_size() does
not check dsa->q.
* ext/openssl/ossl_pkey_rsa.c (ossl_rsa_public_encrypt,
ossl_rsa_public_decrypt, ossl_rsa_private_encrypt,
ossl_rsa_private_decrypt): Ditto. RSA_size() does not check rsa->n.
Tue Aug 16 03:10:42 2016 Nobuyoshi Nakada
* transcode.c (enc_arg, str_transcode_enc_args, econv_args):
remove volatile, and add GC guards in callers.
[ruby-core:75664] [Bug #12411]
Tue Aug 16 02:45:52 2016 SHIBATA Hiroshi
* ext/psych/*, test/psych/*: Update psych 2.1.0
This version fixed [Bug #11988][ruby-core:72850]
Fri Aug 12 04:15:10 2016 Nobuyoshi Nakada
* common.mk (build-ext), ext/extmk.rb: use variable EXTENCS
different than ENCOBJS, to get rid of circular dependency.
build libencs when linking encodings statically.
[ruby-core:75618] [Bug #12401]
Fri Aug 12 04:04:23 2016 Nobuyoshi Nakada
* process.c (rb_execarg_commandline): build command line string
from argument vector in rb_execarg.
[ruby-core:75611] [Bug #12398]
Fri Aug 12 03:30:59 2016 Nobuyoshi Nakada
* variable.c (rb_local_constants_i): exclude private constants
when excluding inherited constants too. [Bug #12345]
Fri Aug 12 03:00:05 2016 Masatoshi SEKI
* lib/drb/timeridconv.rb: don't use keeper thread. [Bug #12342]
* test/drb/ut_timerholder.rb: ditto.
Fri Aug 12 02:46:37 2016 Kazuki Yamaguchi