[#44469] [Ruby 1.9 - Bug #5279][Open] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Shota Fukumori <sorah@...>

21 messages 2011/09/06
[#44471] [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Shota Fukumori <sorah@...> 2011/09/06

[#44472] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — "NARUSE, Yui" <naruse@...> 2011/09/06

2011年9月6日11:02 Shota Fukumori <[email protected]>:

[#44473] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — "Shota Fukumori (sora_h)" <sorah@...> 2011/09/06

じゃぁ,大丈夫かな.

[#44474] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Kazuhiko <kazuhiko@...> 2011/09/06

On 06/09/2011 06:10, Shota Fukumori (sora_h) wrote:

[#44541] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — Kazuhiko <kazuhiko@...> 2011/09/24

かずひこです。

[#44549] Re: [Ruby 1.9 - Bug #5279] $SAFEが3以上の時にString#encodeがSecurityErrorを発生させるケースがある — KOSAKI Motohiro <kosaki.motohiro@...> 2011/09/26

> かずひこです。

[#44491] [Ruby 1.9 - Feature #5314][Open] パッケージマネージャをコアリリースに含めて欲しい — Taro MURAOKA <koron.kaoriya@...>

13 messages 2011/09/13

[#44506] [Ruby 1.9 - Feature #5317][Open] rubyのヘッダファイルを使った拡張を行う際にuid_tの宣言回避をする事が出来ない。 — Yasuhiro Matsumoto <mattn.jp@...>

9 messages 2011/09/13

[#44520] [Ruby 1.9 - Bug #5350][Open] WeakRef で謎の NoMethodError — Makoto Kishimoto <redmine@...>

20 messages 2011/09/21

[#44542] [Ruby 1.9 - Bug #5363][Open] OpenSSL::ASN1.decode_all の引数に PEM 形式の証明書を指定すると Segmentation fault が発生する — Hiroshi Yoshida <hexa.diary@...>

8 messages 2011/09/25

[#44546] [Ruby 1.9 - Bug #5368][Open] ensure節でsleepするようなThreadがあるとインタプリタが終了しない — Masaki Matsushita <glass.saga@...>

22 messages 2011/09/26

[ruby-dev:44530] [Ruby 1.9 - Bug #5358] YAML 中のタグの扱いについて

From: Aaron Patterson <aaron@...>
Date: 2011-09-23 18:12:35 UTC
List: ruby-dev #44530
Issue #5358 has been updated by Aaron Patterson.

Category set to ext
Assignee set to Aaron Patterson
Target version set to 1.9.3

これは syck のバグです。Ruby 1.9.2 で最初に require 'psych' と書いてから、require 'yaml' と書けば、バグは発生しません。

例:

ruby-1.9.2-p290 :001 > RUBY_VERSION
 => "1.9.2" 
ruby-1.9.2-p290 :002 > require 'psych'
 => true 
ruby-1.9.2-p290 :003 > require 'yaml'
 => true 
ruby-1.9.2-p290 :004 >  YAML.load("--- foo")
 => "foo" 
ruby-1.9.2-p290 :005 > YAML.load("--- !str foo")
 => "foo" 
ruby-1.9.2-p290 :006 > YAML.load("--- !tag:yaml.org,2002:str foo")
 => "foo" 
ruby-1.9.2-p290 :007 > YAML.load("--- !!str foo")
 => "foo" 
ruby-1.9.2-p290 :008 > YAML.load("--- !<tag:yaml.org,2002>:str foo")
Psych::SyntaxError: couldn't parse YAML at line 1 column 24
	from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse'
	from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:148:in `parse_stream'
	from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:119:in `parse'
	from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/psych.rb:106:in `load'
	from (irb):8
	from /Users/aaron/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
ruby-1.9.2-p290 :009 > 

Ruby 1.9.3 を使ったら、require 'yaml' だけで良いです。

例:

ruby-1.9.3-head :001 > RUBY_VERSION
 => "1.9.3" 
ruby-1.9.3-head :002 > require 'yaml'
 => true 
ruby-1.9.3-head :003 > YAML.load("--- foo")
 => "foo" 
ruby-1.9.3-head :004 > YAML.load("--- !str foo")
 => "foo" 
ruby-1.9.3-head :005 > YAML.load("--- !tag:yaml.org,2002:str foo")
 => "foo" 
ruby-1.9.3-head :006 > YAML.load("--- !!str foo")
 => "foo" 
ruby-1.9.3-head :007 > YAML.load("--- !<tag:yaml.org,2002>:str foo")
Psych::SyntaxError: (<unknown>): couldn't parse YAML at line 0 column 24
	from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:154:in `parse'
	from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:154:in `parse_stream'
	from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:125:in `parse'
	from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/lib/ruby/1.9.1/psych.rb:112:in `load'
	from (irb):7
	from /Users/aaron/.rvm/rubies/ruby-1.9.3-head/bin/irb:16:in `<main>'
ruby-1.9.3-head :008 >

----------------------------------------
Bug #5358: YAML 中のタグの扱いについて
http://redmine.ruby-lang.org/issues/5358

Author: Sho Hashimoto
Status: Open
Priority: Normal
Assignee: Aaron Patterson
Category: ext
Target version: 1.9.3
ruby -v: ruby 1.9.2p290


http://yaml.org/ によると、以下はいずれも同じグローバルタグを指定してると思うのですが、結果が異なります。

  YAML.load("--- !<tag:yaml.org,2002>:str foo")
  # => #<YAML::DomainType:0xf71d4780 @domain="yaml.org,2002", @type_id="<tag:yaml.org,2002>:str", @value="foo">

  YAML.load("--- !!str foo")
  # => #<YAML::PrivateType:0xf71e0a44 @type_id="str", @value="foo">

一方、以下はいずれも同じ結果になります。

  YAML.load("--- foo")                        # => "foo"
  YAML.load("--- !str foo")                   # => "foo"
  YAML.load("--- !tag:yaml.org,2002:str foo") # => "foo"

これらについて、もしかして以下のバグがあるのではないでしょうか。

* !str は間違ってグローバルタグとして扱われている
* !tag:yaml.org,2002 は間違ってグローバルタグとして扱われている
* !!str はグローバルタグとして扱われていない



-- 
http://redmine.ruby-lang.org

In This Thread