| Age | Commit message (Collapse) | Author |
|
* string.c (rb_str_init): preserve the embedded content when
self-copying with a capacity. [Bug #15937]
|
|
Registering a string that depend on a dependent string as fstring
can lead to use-after-free. See c06ddfe and 3f95620 for details.
The following script triggers use-after-free on trunk, 2.4.6, 2.5.5
and 2.6.3. Credits to @wanabe for using eval as a cross-version way
of registering a fstring.
```ruby
a = ('j' * 24).b.b
eval('', binding, a)
p a
4.times { GC.start }
p a
```
- string.c (str_replace_shared_without_enc): when given a
dependent string, depend on the root of the dependent
string.
[Bug #15934]
|
|
* parse.y (value_expr_check): `then` or `else` only `if` is not a
void value expression, as the counterpart is evaluated as `nil`.
[Bug #15932]
|
|
* parse.y (value_expr_check): if either of `then` or `else`
statements is not a void value expression, the whole `if` is not
also a void value expression. [Bug #15932]
|
|
This reverts commit 44caca11cfa6bea01a1ef738846183f1a56d5658.
The change caused a build failure.
http://ci.rvm.jp/results/trunk-vm-asserts@silicon-docker/2102153
|
|
compile.c (NODE_CDECL): Evaluate the module before the value
test/ruby/test_const.rb (test_evaluation_order): added a test case
|
|
|
|
|
|
|
|
|
|
https://twitter.com/yukihiro_matz/status/1139454774640726019
|
|
|
|
To allow arguments without parentheses.
|
|
|
|
* io.c (rb_io_set_encoding_by_bom): IO#set_encoding_by_bom to set
the encoding by BOM if exists. [Bug #15210]
|
|
Fixes [Bug #15720]
|
|
* test/lib/test/unit/assertions.rb (assert_cpu_usage_low): apply
the timeout scale to measuring period. this assertion is very
runtime environment dependent.
|
|
|
|
https://hackerone.com/reports/605262
|
|
|
|
|
|
[Bug #15906]
|
|
|
|
|
|
FrozenError#receiver was added recently for getting the related
object programmatically. However, there are cases where FrozenError
is raised and not handled, and in those cases the resulting error
messages lack detail, which makes debugging the error more difficult,
especially in cases where the error is not easily reproducible.
This includes the inspect value of the frozen object in FrozenError
messages, which should make debugging simpler.
|
|
* parse.y (tok_hex): flush token after dispatching the "invalid
hex escape" parse error.
|
|
Fixes [Bug #15889]
|
|
Skip the webrick httpauth tests that use crypt when testing on
OpenBSD.
Fixes [Bug #11363]
|
|
|
|
|
|
|
|
* variable.c (set_namespace_path): modules/classes can get named
by assignment to constant, even if frozen. [Bug #15891]
|
|
`vm->orig_progname` can be different from `vm->progname` when user
code assigns to `$0`. While `vm->progname` is kept alive by the
global table, nothing marked `vm->orig_progname`.
[Bug #15887]
|
|
* parse.y: continue parsing the rest of the here-document starting
line, after the terminator was not found.
|
|
* parse.y (warn_space_char_code): warn whitespace characters
escaped with meta/control prefix.
|
|
* parse.y (parse_atmark): numbered parameter name is not allowed
as a symbol regardless the context.
|
|
Similar to NameError#receiver, this returns the object on which
the modification was attempted. This is useful as it can pinpoint
exactly what is frozen. In many cases when a FrozenError is
raised, you cannot determine from the context which object is
frozen that you attempted to modify.
Users of the current rb_error_frozen C function will have to switch
to using rb_error_frozen_object or the new rb_frozen_error_raise
in order to set the receiver of the FrozenError.
To allow the receiver to be set from Ruby, support an optional
second argument to FrozenError#initialize.
Implements [Feature #15751]
|
|
* parse.y (here_document): broke the terminator condition down
into each piece, the positional condition, resetting the
dedented here-document indentation, and matching identifier.
suppress a false warning by icc.
|
|
* parse.y (parser_yylex): adjust the error indicator of unexpected
fraction part.
before:
~~~
1.2.3
^~~
~~~
after:
~~~
1.2.3
^~
~~~
|
|
|
|
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris11s-sunc/ruby-master/log/20190526T052508Z.fail.html.gz
|
|
It is a wrapper for Timeout.timeout with the scale factor applied.
|
|
* parse.y (parser_yyerror, parser_compile_error): revert
r67224 (e5d10cda07b23682e5e4e64d1324e4d3247d4785) "Flush erred
token".
|
|
for Solaris.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable10s/ruby-master/log/20190525T131909Z.fail.html.gz
|
|
|
|
|
|
It fails on some CI environments.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/debian8/ruby-trunk/log/20190524T003006Z.fail.html.gz
https://rubyci.org/logs/rubyci.s3.amazonaws.com/unstable11s/ruby-trunk/log/20190523T002505Z.fail.html.gz
|
|
|
|
Closes: https://github.com/ruby/ruby/pull/2133
|
|
[Feature #15323]
Closes: https://github.com/ruby/ruby/pull/2017
|