[#47763] 各ファイルの (C) の年表記 — SASADA Koichi <ko1@...>
1993-2007 みたいなのが多かったので、えいやと -2013
5 messages
2013/10/18
[#47768] [ruby-trunk - Bug #9045][Open] URIに含まれるエンコードされたID/パスワードがデコードされない — "vmi (Motonori IWAMURO)" <vmi@...>
5 messages
2013/10/23
[ruby-dev:47753] [ruby-trunk - Bug #8995] バイナリデータを文字列として encode! すると readbyte の結果が変化する
From:
"nobu (Nobuyoshi Nakada)" <nobu@...>
Date:
2013-10-08 14:34:03 UTC
List:
ruby-dev #47753
Issue #8995 has been updated by nobu (Nobuyoshi Nakada).
同じエンコーディング間では何もしていなかったので、防御にはなっていなかったんじゃないでしょうか。
----------------------------------------
Bug #8995: バイナリデータを文字列として encode! すると readbyte の結果が変化する
https://bugs.ruby-lang.org/issues/8995#change-42338
Author: hsbt (Hiroshi SHIBATA)
Status: Third Party's Issue
Priority: Normal
Assignee:
Category: core
Target version: current: 2.1.0
ruby -v: ruby 2.1.0dev (2013-10-07 trunk 43160) [x86_64-darwin12.5.0]
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN
=begin
Rails の以下のコードの結果が 2.0 と 2.1 とで異なるようです。
((<encode_params|URL:https://github.com/rails/rails/blob/3-2-stable/actionpack/lib/action_dispatch/http/parameters.rb#L51>))
以下が最小ケースです。
$ ruby -v
=> ruby 2.1.0dev (2013-10-07 trunk 43160) [x86_64-darwin12.5.0]
$ ruby -rstringio -e "Encoding.default_internal = Encoding::UTF_8; p StringIO.new(File.read('x.jpg')).readbyte"
=> 255
$ ruby -rstringio -e "Encoding.default_internal = Encoding::UTF_8; p StringIO.new(File.read('x.jpg').force_encoding('UTF-8').encode\!).readbyte"
=> 239
なお、2.0 ではそれぞれの値が変化しませんでした。
$ ruby -v
=> ruby 2.0.0p326 (2013-10-05 revision 43144) [x86_64-darwin13.0.0]
$ ruby -rstringio -e "Encoding.default_internal = Encoding::UTF_8; p StringIO.new(File.read('x.jpg')).readbyte"
=> 255
$ ruby -rstringio -e "Encoding.default_internal = Encoding::UTF_8; p StringIO.new(File.read('x.jpg').force_encoding('UTF-8').encode\!).readbyte"
=> 255
rails の該当箇所は rails4 でも同じ処理を行っているので、このままだと post で画像などを送るともれなく壊れてしまいます。
rails のコードがよくないのか、File.binread を使って読み込んでないのがおかしいなど教えて頂けると嬉しいです。
=end
--
http://bugs.ruby-lang.org/