Actions
Bug #5913
closedCGI.escape cannot escape a string with invalid byte sequence.
Description
不正なバイト列を持つ文字列を CGI.escape に渡すと ArgumentError が起きます。
$ .prefix/bin/ruby -rcgi -ve 'p CGI.escape("\xC0<<".force_encoding("UTF-8"))'
ruby 2.0.0dev (2012-01-20 trunk 34342) [x86_64-darwin11.2.0]
/Users/kenta-murata/work/ruby.git/.prefix/lib/ruby/2.0.0/cgi/util.rb:7:in gsub': invalid byte sequence in UTF-8 (ArgumentError) from /Users/kenta-murata/work/ruby.git/.prefix/lib/ruby/2.0.0/cgi/util.rb:7:in
escape'
from -e:1:in `'
この振舞いがバグなら、このパッチで修正可能です https://gist.github.com/1646048
Updated by naruse (Yui NARUSE) almost 13 years ago
バグじゃないかと思います。
パッチについては、String#valid_encoding? は文字列スキャンが走るので、
常時 ASCII-8BIT を設定して戻したほうがいいんじゃないかと思います。
Updated by mrkn (Kenta Murata) almost 13 years ago
新しいパッチを作りました。
https://gist.github.com/1646162
これで問題なければ、コミットします。良いですか?
Updated by mrkn (Kenta Murata) almost 13 years ago
- Status changed from Assigned to Closed
- Assignee changed from xibbar (Takeyuki FUJIOKA) to mrkn (Kenta Murata)
r34346 で修正しました。
Actions
Like0
Like0Like0Like0Like0