summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* io.c: ignore EPERMcopy_file_range_bugMasaki Matsushita2017-12-221-0/+2
| | | | | | | * io.c (nogvl_copy_file_range): ignore EPERM and fallback to sendfile(2) or read/write. copy_file_range(2) may not exist even if __NR_copy_file_range is defined in the build environment. [Bug #14207]
* erb.rb: shadow by keysnobu2017-12-222-3/+14
| | | | | | | | * lib/erb.rb (ERB#new_toplevel): shadow already defined local variables by block local variabes, not to overwrite them. [ruby-core:84390] [Bug #14215] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Bump up fileutils-1.0.2hsbt2017-12-222-2/+4
| | | | | | Added `FileUtils::VERSION` const variable. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick/httpservelet/cgi_runner: avoid IO#reopen on pathnamenormal2017-12-221-2/+2
| | | | | | | | | | | IO#reopen seems to behave strangely on Win32 based on the logs posted by Greg for [Bug #14420]. Lets try to fix the issue by using File.open explicitly (but not Kernel#open). * lib/webrick/httpservelet/cgi_runner: use File.open explicitly [Bug #14220] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix a test for debugging.ko12017-12-221-1/+2
| | | | | | | | | * test/rdoc/test_rdoc_markup_pre_process.rb: show `RDoc::Markup::PreProcess.post_processors` as a failure message for debugging. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] StringIO#write accepts multiple arguments since r60377 [ci skip]kazu2017-12-221-2/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] Fix indent [ci skip]kazu2017-12-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* [DOC] Remove unmatched parenthesis [ci skip]kazu2017-12-221-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61405 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* ifaddr.c: get_ifaddrsnobu2017-12-221-20/+15
| | | | | | | * ext/socket/ifaddr.c (get_ifaddrs): extract ifaddrs from Socket::Ifaddr. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c (rb_insn_operand_intern): needs parenthesiesnobu2017-12-221-3/+3
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61403 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick/httputils: note Kernel#open behaviornormal2017-12-221-0/+2
| | | | | | | | | | | | | | I don't know who uses the load_mime_types method; but it is conceivable that a user would want to read the results of a command instead of reading a regular file to load MIME types. None of the WEBrick-related code in Ruby or default/bundled gems seems to rely on this method; but it is likely 3rd-party code does. * lib/webrick/httputils.rb (load_mime_types): note Kernel#open behavior [Misc #14216] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61402 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick/httpservlet/*handler: use File.opennormal2017-12-222-3/+3
| | | | | | | | | | | | | This makes future code audits easier. None of these changes fix realistic remote code execution vulnerabilities because we stat(2) before attempting Kernel#open. * lib/webrick/httpservlet/erbhandler.rb (do_GET): use File.open * lib/webrick/httpservlet/filehandler.rb (do_GET): use File.open (make_partial_content): ditto [Misc #14216] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick: WEBrick::Log requires path arg when given stringnormal2017-12-221-1/+1
| | | | | | | | | | Allowing a user to specify "| command" via Kernel#open is nonsensical since we never read from the resultant IO. * lib/webrick/log.rb (initialize): replace Kernel#open with File.open [Misc #14216] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61400 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick: add test for WEBrick::HTTPServlet::ERBHandlernormal2017-12-222-0/+20
| | | | | | | | | | This previously had no coverage. * test/webrick/test_filehandler.rb (test_erbhandler): new test * test/webrick/webrick.rhtml: new file for test [Misc #14216] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61399 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick/httpservlet/cgi_runner.rb: remove unnecessary opennormal2017-12-221-2/+2
| | | | | | | | | | | | | | IO#reopen already takes string path names as well as IO objects (but not "| command" strings) This makes further auditing for inadvertant code execution easier. There's no actual bugfix or behavior change here, as no external data is passed to cgi_runner.rb. * lib/webrick/httpservlet/cgi_runner.rb: remove Kernel#open call [Misc #14216] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61398 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* webrick: httpauth requires regular filesnormal2017-12-223-6/+6
| | | | | | | | | | | | Be sure we do not try to open a pipe to read from, since we care about mtime in all cases. * lib/webrick/httpauth/htdigest.rb: use File.open * lib/webrick/httpauth/htgroup.rb: ditto * lib/webrick/httpauth/htpasswd.rb: ditto [Misc #14216] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* encoding.c: rb_enc_find_index2nobu2017-12-223-13/+17
| | | | | | | * string.c (str_undump): use rb_enc_find_index2 to find encoding by unterminated string. check the format before encoding name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61396 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c: defined insn operandnobu2017-12-221-13/+35
| | | | | | | * iseq.c (rb_insn_operand_intern): improve operands of defined instruction. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61395 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-12-22svn2017-12-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61394 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Extend timeout for CI.shugo2017-12-211-2/+2
| | | | | | http://ci.rvm.jp/results/trunk-asserts-nopara@ruby-sky1/266962 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* open-uri defines URI.open defined as an alias.akr2017-12-213-0/+21
| | | | | | | | open-uri's Kernel.open will be deprecated in future. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61392 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test for [Bug #14214]nobu2017-12-211-0/+10
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Added detailed version of Bundler on NEWS.hsbt2017-12-211-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61390 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Simplify Thread#[]= speceregon2017-12-211-4/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Merge release version of bundler-1.16.1 from upstream.hsbt2017-12-2116-95/+122
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* revert r61371 for [Bug #14214]ko12017-12-211-21/+3
| | | | | | | Reverted patch doesn't check overwritten value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61387 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* string.c: fix memory leaknobu2017-12-211-0/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61386 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* common.mk: revert r58542 [Bug #14213]nobu2017-12-211-1/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61385 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c (rb_iseq_code_range): Remove needless `;`yui-knk2017-12-211-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* parse.y: change NODE_SCOPE's nd_loc to one of the parent NODEmame2017-12-211-3/+3
| | | | | | | | | | This change (ad-hocly) adjusts the code range of NODE_SCOPE in class/module definition because the same adjust is already done in method definition. I intend to just remove inconsistency between class/module definition and method definition, but this kind of adjust is dirty, so it should be fixed later (maybe in 2.6). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* add experimental API.ko12017-12-212-0/+10
| | | | | | | * iseq.c (rb_iseq_code_range): added to access iseq's code range. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Don't allow mixed escapenaruse2017-12-212-2/+12
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* move dump format validation into parsing epiloguenaruse2017-12-212-99/+78
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61380 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix escapes in undumpnaruse2017-12-212-38/+50
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61379 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * lib/logger.rb (Logger::LogDevice#open_logfile, #create_logfile):sonots2017-12-212-2/+9
| | | | | | Logger should be able to open only files [Bug #14212] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61378 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fix `imemo_name` to dump new imemo typestenderlove2017-12-211-0/+3
| | | | | | | New IMEMO types were introduced, this just fixes the function that converts the type to support the new types. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* io.c: IO#pwrite uses tmp buffer to avoid parallel modificationnormal2017-12-211-4/+6
| | | | | | | | | | | Since we release GVL, we must freeze and duplicate the string buffer to prevent other threads from modifying our buffer while we are waiting on pwrite(2). * io.c (rb_io_pwrite): use_rb_str_tmp_frozen_{acquire/release} [Bug #14195] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix threading bug.ko12017-12-201-2/+3
| | | | | | | | * spec/ruby/core/thread/element_set_spec.rb: `t` can be uninitialized. Use `Thread.current` explicitly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61375 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix test errors on Windowsusa2017-12-202-2/+2
| | | | | | | | | | | | | * test/resolv/test_addr.rb (test_hosts_by_command): on Windows, `|` is invalid charactor for path and raises `Errno::EINVAL` if trying to open. * test/resolv/test_dns.rb (test_resolv_conf_by_command): ditto. cf. [Bug #14205] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * 2017-12-21svn2017-12-201-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61372 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* compile.c: branch on block paramnobu2017-12-201-3/+21
| | | | | | | | * compile.c (compile_branch_condition): replace block param value in branch conditions with `defined(yield)`, to get rid of creating proc value. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61371 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c: block param namenobu2017-12-201-1/+2
| | | | | | | * iseq.c (rb_insn_operand_intern): show local variable name at getblockparam/setblockparam too. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* raise error if value contains CR/LF in iniheader of initialize_http_headernaruse2017-12-202-3/+22
| | | | | | like r59693, initialize_http_header also should raise error. [Bug #14208] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NEWS: update news for Psychstomar2017-12-201-0/+2
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61357 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NEWS: "absent operator" is now called "absence operator"stomar2017-12-201-1/+1
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* NEWS: grammar fixesstomar2017-12-201-6/+7
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Update rdoc-6.0.0 entry on NEWS filehsbt2017-12-201-3/+9
| | | | git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* iseq.c (get_insn_info): use binary search instead of linear searchmame2017-12-201-5/+66
| | | | | | | | | This change introduces get_insn_info_binary_search, which is (should be) equivalent to the old get_insn_info. The old get_insn_info is renamed to get_insn_info_linear_search. When VM_CHECK_MODE > 0, the equivalence is validated at finish_iseq_build. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61353 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* test/coverage/test_coverage.rb: make the expected value the same as 2.4mame2017-12-201-1/+1
| | | | | | A follow up of r61350 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* Fixed command Injectionnobu2017-12-203-1/+22
| | | | | | | | * lib/resolv.rb (Resolv::Config.parse_resolv_conf): fixed potential command injection by use of Kernel#open. [ruby-core:84347] [Bug #14205] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e