[#41531] [Bug #3385] ext/dbm: accept various version of db — Takahiro Kambe <redmine@...>

Bug #3385: ext/dbm: accept various version of db

10 messages 2010/06/03

[#41600] 質問・提案:cgi.rbの後継となるライブラリについて — Dice <tetradice@...>

Diceです。cgi.rbの後継ライブラリについて質問させてください。

16 messages 2010/06/13
[#41606] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Fujioka <fuj@...> 2010/06/14

藤岡です。

[#41607] Re: 質問・提案:cgi.rbの後継となるライブラリについて — KAKUTANI Shintaro <shintaro.kakutani@...> 2010/06/14

かくたにです。

[#41616] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Dice <tetradice@...> 2010/06/15

藤岡さん、かくたにさん、返信ありがとうございます。

[#41617] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Fujioka <fuj@...> 2010/06/16

藤岡です。

[#41656] Re: 質問・提案:cgi.rbの後継となるライブラリについて — Dice <tetradice@...> 2010/06/20

Diceです。藤岡さん、返信ありがとうございます。

[#41623] [Feature:trunk] argument delegation — Nobuyoshi Nakada <nobu@...>

なかだです。

23 messages 2010/06/16
[#41625] Re: [Feature:trunk] argument delegation — Yusuke ENDOH <mame@...> 2010/06/16

遠藤です。

[#41627] Re: [Feature:trunk] argument delegation — Yukihiro Matsumoto <matz@...> 2010/06/16

まつもと ゆきひろです

[#41702] WIN32OLE_METHOD offset_vtbl — kuwamoto shintaro <beuniv@...>

こんばんわ

16 messages 2010/06/23
[#41712] Re: WIN32OLE_METHOD offset_vtbl — Masaki Suketa <masaki.suketa@...> 2010/06/24

助田です。

[ruby-dev:41632] Re: [Bug #3345] webrick test failure on Windows(?)

From: Yusuke ENDOH <mame@...>
Date: 2010-06-17 03:39:06 UTC
List: ruby-dev #41632
遠藤です。

2010年6月16日9:45 U.Nakamura <[email protected]>:
>> 担当者 Usaku NAKAMURAにセット
>
> え、なんで?
> 報告したら担当しないといけないの?

報告者だからではなく、windows のプラットフォームメンテナということで
担当者にさせてもらいました。メンテナがいないライブラリの、プラット
フォーム特有の問題はプラットフォームメンテナに見てもらうしかないかな
と思って。
見たくないということでしたら、WONTFIX と判断する権限はあると思います。


>> prevent_directory_traversal の問題を正確に理解していないのですが、
>> 問題がおきるのが Windows だけで、\\ の扱いだけの問題だとしたら、
>> File.expand_path を使わず gsub で処理するといいのではないでしょう
>> か。
>
> 残念ながら \\ の扱いだけの問題ではないので...
> 具体的には、短いファイル名形式を利用したアクセスや、NTFSデー
> タストリームの主ストリーム明示指定アクセスなどによるアクセス
> 制御回避を、File.expand_pathの正規化処理を利用して排除してい
> ます。
> File.expand_pathが行っている正規化処理と同等の処理を全部ここ
> に並べるのはさすがにちょっと。

File.expand_path は絶対パスに変換するメソッドであって、正規化に使う
のは筋違いではないかという気がします。
trailing_pathsep? の処理が必要なことが傍証?

筋がどうこう言ってても security issue はしょうがないのでしょうがない
のですが、じゃあこういうパッチはどうでしょうか。
windows では試していませんが。


diff --git a/lib/webrick/httpservlet/filehandler.rb
b/lib/webrick/httpservlet/filehandler.rb
index 32c1965..4887903 100644
--- a/lib/webrick/httpservlet/filehandler.rb
+++ b/lib/webrick/httpservlet/filehandler.rb
@@ -214,16 +214,18 @@ module WEBrick
         # character in URI notation. So the value of path_info should be
         # normalize before accessing to the filesystem.

+        path = req.path_info.dup.force_encoding(Encoding.find("filesystem"))
         if trailing_pathsep?(req.path_info)
           # File.expand_path removes the trailing path separator.
           # Adding a character is a workaround to save it.
           #  File.expand_path("/aaa/")        #=> "/aaa"
           #  File.expand_path("/aaa/" + "x")  #=> "/aaa/x"
-          expanded = File.expand_path(req.path_info + "x")
+          expanded = File.expand_path(path + "x")
           expanded.chop!  # remove trailing "x"
         else
-          expanded = File.expand_path(req.path_info)
+          expanded = File.expand_path(path)
         end
+        expanded.force_encoding(req.path_info.encoding)
         req.path_info = expanded
       end


-- 
Yusuke Endoh <[email protected]>

In This Thread