[#101179] Spectre Mitigations — Amel <amel.smajic@...>
Hi there!
5 messages
2020/12/01
[#101180] Re: Spectre Mitigations
— Chris Seaton <chris@...>
2020/12/01
I wouldn’t recommend using Ruby to run in-process untrusted code in the first place. Are people doing that?
[#101694] Ruby 3.0.0 Released — "NARUSE, Yui" <naruse@...>
We are pleased to announce the release of Ruby 3.0.0. From 2015 we
4 messages
2020/12/25
[ruby-core:101614] [Ruby master Bug#17405] irb ---nomultiline gets exception when output contains some non-ascii characters
From:
marcandre-ruby-core@...
Date:
2020-12-21 22:50:25 UTC
List:
ruby-core #101614
Issue #17405 has been updated by marcandre (Marc-Andre Lafortune).
aycabta (aycabta .) wrote in #note-3:
> @rsharman and @marcandre, would you show me the result of `irb_info` command in IRB and what terminal emulator you are using?
```
irb(main):001:0> irb_info
=>
Ruby version: 3.0.0
IRB version: irb 1.2.8 (2020-12-20)
InputMethod: ReidlineInputMethod with Reline 0.1.10
.irbrc path: /Users/mal/.irbrc
```
If Richard Sharman can try your patch that would be great, lots of things I'd like to finish before 3.0
Using iTerm2, Build 3.4.3, but reproduced also on Terminal.app Version 2.9.5 (421.2)
----------------------------------------
Bug #17405: irb ---nomultiline gets exception when output contains some non-ascii characters
https://bugs.ruby-lang.org/issues/17405#change-89400
* Author: rsharman (Richard Sharman)
* Status: Open
* Priority: Normal
* Assignee: aycabta (aycabta .)
* ruby -v: ruby 3.0.0dev (2020-12-21T02:23:01Z master ac78d90d5e) [x86_64-darwin18]
* Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN
----------------------------------------
When irb is called with the --nomultiline option (for example, when called from emacs), then if the output contains some special characters (such as the square root sign, or a single quotation mark), then irb gets an exception.
Without the --multiline option the problem does not happen.
Here is an example with a string assignment to variable m.
Without fix: Without --nomultiline there is no problem:
henry:tmp richard$ irb
irb(main):001:0> source 'test.rb'
test.rb(main):002:0> # coding: utf-8
=> nil
test.rb(main):003:0> m = "√10"
=> "√10"
test.rb(main):004:0> m
=> "√10"
=> nil
But with --nomultiline irb gets an exception (but the assignment did work):
henry:tmp richard$ irb --nomultiline
irb(main):001:0> source 'test.rb'
test.rb(main):002:0> # coding: utf-8
=> nil
test.rb(main):003:0> m = "√10"
Traceback (most recent call last):
8: from /Users/richard/.rbenv/versions/2.7.2/bin/irb:23:in `<main>'
7: from /Users/richard/.rbenv/versions/2.7.2/bin/irb:23:in `load'
6: from /Users/richard/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/irb-1.2.6/exe/irb:11:in `<top (required)>'
5: from (irb):1
4: from /Users/richard/.rbenv/versions/2.7.2/lib/ruby/2.7.0/reline/unicode.rb:99:in `calculate_width'
3: from /Users/richard/.rbenv/versions/2.7.2/lib/ruby/2.7.0/reline/unicode.rb:99:in `scan'
2: from /Users/richard/.rbenv/versions/2.7.2/lib/ruby/2.7.0/reline/unicode.rb:108:in `block in calculate_width'
1: from /Users/richard/.rbenv/versions/2.7.2/lib/ruby/2.7.0/reline/unicode.rb:108:in `+'
TypeError (nil can't be coerced into Integer)
test.rb(main):004:0> m
=> "√10"
=> nil
The problem is that in method get_mbchar_width of class Reline::Unicode Reline.ambiguous_width can have a nil value, whereas the code seems to expect a low integer (unicode.rb line 84). This causes method calculate_width to add a nil value to width (line 109).
I don’t know what value Reline.ambiguous_width should be in these cases; the simple change below uses a value of 1 to avoid the exception:
```
bash-5.1$ diff unicode.rb{.orig,}
84c84,85
< Reline.ambiguous_width
---
> width = Reline.ambiguous_width
> width.nil? ? 1 : width # if nil then assume 1
bash-5.1$
```
```
```
With above fix:
henry:tmp richard$ irb --nomultiline
irb(main):001:0> source 'test.rb'
test.rb(main):002:0> # coding: utf-8
=> nil
test.rb(main):003:0> m = "√10"
=> "√10"
test.rb(main):004:0> m
=> "√10"
=> nil
henry:tmp richard$
---Files--------------------------------
test.rb (30 Bytes)
Patch (456 Bytes)
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>