[#34909] Kernel#evalの第2引数 — KURODA Hiraku <hiraku@...>
こんにちは、黒田ひらくと申します。
[#34911] erb still treats $KCODE — "Yusuke ENDOH" <mame@...>
遠藤です。
咳といいます。
まつもと ゆきひろです
永井@知能.九工大です.
[#34923] open() and encodings — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
永井@知能.九工大です.
こんにちは、なかむら(う)です。
In article <4847146F.4020103@airemix.jp>,
永井@知能.九工大です.
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#34938] Ruby1.8.7 で Rails2.0.2 が動かない — okkez <okkez000@...>
okkez です。
[#34979] [Bug:ruby 1.9] cannot open file with big mode value — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#34990] [Bug:1.9] Rational("355/113") clear $& — Tanaka Akira <akr@...>
以下のように、Rational("355/113") とすると $& が nil になり
> 以下のように、Rational("355/113") とすると $& が nil になり
ワナベと申します。
[#34997] Re: [ruby-changes:5517] Ruby:r17021 (trunk): * vm_insnhelper.c, vm.c, proc.c (proc_call): allow call method with — SASADA Koichi <ko1@...>
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
遠藤です。
まつもと ゆきひろです
遠藤です。
まつもと ゆきひろです
遠藤です。
ささだです.
ささだです.
まつもと ゆきひろです
ささだです.
[#35016] リリースプラン:1.9.0-2 — SASADA Koichi <ko1@...>
ささだです.
ささだです.
[#35020] Ruby 1.8.7-p17 has been released — "Akinori MUSHA" <knu@...>
Ruby 1.8.7-p17 をリリースしました。
pegacorn です。
[#35034] Array#shuffle! returns nil ? — okkez <okkez000@...>
okkez です。
[#35044] deadlock detection for 1.9 — "Yusuke ENDOH" <mame@...>
遠藤です。
こんばんは sheepman です。
まつもと ゆきひろです
[#35054] SSE2版 strlen — "NARUSE, Yui" <naruse@...>
成瀬です。
In message <485000F3.2010302@airemix.jp>
[#35056] Wide Finder performance — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
ささだです.
[#35074] [Bug:1.9] irb fg — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#35108] Re: [ruby-list:44988] Re: 各ブランチの計画 — Urabe Shyouhei <shyouhei@...>
卜部です。
こんにちは、なかむら(う)です。
[#35131] /\p{Hiragana}/s may dump core when sizeof(int) differs from sizeof(long) — "Yusuke ENDOH" <mame@...>
遠藤です。
[#35133] [BUG] class variable — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
ささだです.
まつもと ゆきひろです
ささだです.
まつもと ゆきひろです
[#35141] Etc::Passwd, Etc::Group というクラスは存在しない — okkez <okkez000@...>
okkez です。
[#35148] [Feature:trunk] IO#binmode? — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#35152] PATCH for MySQL/Ruby — Nobuyoshi Nakada <nobu@...>
なかだです。
[#35158] Etc.passwd{} のなかでのEtc.getpwnamの呼び出しがループします。 — "Yutaka Kanemoto" <kinpoco@...>
金本と申します。
[#35165] return from proc — SASADA Koichi <ko1@...>
ささだです.
[#35194] IncompatibleEncodingError — Kouhei Sutou <kou@...>
須藤です。
成瀬です。
須藤です。
[#35200] Win32 Unicode console output — Tietew <tietew@...>
Tietew です。
成瀬です。
artonです。
成瀬です。
成瀬です。
こんにちは、なかむら(う)です。
[#35226] [PATCH] freeze required_paths in gem_prelude.rb — "Keita Yamaguchi" <keita.yamaguchi@...>
山口と申します。
遠藤です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
[#35227] [Bug:trunk] Re: [ruby-cvs:24798] Ruby:r17573 (trunk): * parse.y (primary): make functional-style not operator to act — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
[#35247] Re: [ruby-list:45128] Re: Ruby 1.9.0/1.8.7/1.8.6/1.8.5 new releases (Security Fix) — Urabe Shyouhei <shyouhei@...>
卜部です。-devに振ります。ひょっとしてこんなパッチでSEGVのほうはおさまっ
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
卜部です。
[#35272] some insns should be method? — SASADA Koichi <ko1@...>
ささだです.
[#35273] $SAFEの今後 — Urabe Shyouhei <shyouhei@...>
〜これまでのあらすじ〜
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
卜部です。
まつもと ゆきひろです
前田です。
山口と申します。
[#35274] [Feature:trunk] test-coverage measurement — "Yusuke ENDOH" <mame@...>
遠藤です。
まつもと ゆきひろです
[#35278] [BUG] test_win32ole_event.rb in trunk — Masaki Suketa <masaki.suketa@...>
助田です。
こんにちは、なかむら(う)です。
artonです。
助田です。
artonです
助田です。
[ruby-dev:35269] $SAFE=2 and tempfile, tmpdir
artonです。
Ruby 1.8.7-p22で、2点あります。
1つは、tempfile.rbで、$SAFE >= 2の場合にTempfile.newがRuntimeErrorで失敗
するのが意図的かどうかの確認です。
C:\home\arton\>ruby -rtempfile -e '$SAFE=2;Tempfile.new("test")'
c:/home/ruby/lib/ruby/1.8/tempfile.rb:52:in `initialize': cannot generate tempfi
le `' (RuntimeError)
from -e:1:in `new'
from -e:1
もし意図的でなければ、$SAFEが2の場合にはTempfile.newは成功して欲しいです。
Fileクラスは与えられたファイル名がtaintでなければ、$SAFEが4より小さけれ
ばファイルの作成を許していますが、Tempfileのファイル名は安全なはずなので、
同様であってほしいと思います。具体的にやりたいことは、open-uriを使った
Webサイトからのコンテンツ読み込みです。
なお、RuntimeErrorとなる原因は、ファイル名生成のときに呼び出すmake_tmpname
で、$$を利用してpid($SAFE=2でSecurityError)を取得しようとしているため、
get_pidが、$SAFE>=2でSecurityErrorとしているからです。このためファイル名
が生成されていない状態でファイルを作成しようとして、RuntimeErrorとなりま
す。
2点目は、Windows Vista以降のWindows固有の現象ですが、$SAFE>0の場合の
tmpdir.rbのDir::tmpdirの挙動というか設定があまりうまくありません。
具体的には、$SAFE>0のため、環境変数を参照せずに安全なテンポラリディレク
トリを得ようという意図だとは思いますが、@@systmpdirを利用しています。
で、@@systemdirとして、Win32 APIで取得したWindowsディレクトリ内のTempディ
レクトリを設定していますが、このディレクトリは、Windows Vistaでは管理者権限のみ
アクセス可能で、一般のユーザーは読み書きできません。
C:\home\arton>ruby -rtmpdir -e 'p Dir::tmpdir'
"C:/Users/arton/AppData/Local/Temp"
C:\home\arton>ruby -rtmpdir -e '$SAFE=1; p Dir::tmpdir'
"C:/Windows/Temp"
Windows側の意図と、元のtmpdirの意図を、尊重するならば、ユーザー固有のテ
ンポラリディレクトリを、Win32 APIで取得するのがあるべき姿ではないでしょ
うか。
というわけで、以下にtmpdir.rbのパッチを添付します。
SHGetFolderPath APIで現在のユーザーの専用ディレクトリを得るようにしてい
ます。SHGetFolderPath APIが取れない場合(古いWindows)については、従来の動
作となるようにしています。
diff -u tmpdir.rb.org tmpdir.rb
--- tmpdir.rb.org Sun Jun 29 02:20:44 2008
+++ tmpdir.rb Sun Jun 29 02:47:54 2008
@@ -9,18 +9,25 @@
class Dir
@@systmpdir = '/tmp'
-
+ CSIDL_LOCAL_APPDATA = 0x001c
+
begin
require 'Win32API'
max_pathlen = 260
windir = ' '*(max_pathlen+1)
begin
- getdir = Win32API.new('kernel32', 'GetSystemWindowsDirectory', 'PL', 'L')
+ getdir = Win32API.new('shell32', 'SHGetFolderPath', 'LLLLP', 'L')
+ raise RuntimeError if getdir.call(0, CSIDL_LOCAL_APPDATA, 0, 0, windir) != 0
+ windir = File.expand_path(windir.rstrip)
rescue RuntimeError
- getdir = Win32API.new('kernel32', 'GetWindowsDirectory', 'PL', 'L')
+ begin
+ getdir = Win32API.new('kernel32', 'GetSystemWindowsDirectory', 'PL', 'L')
+ rescue RuntimeError
+ getdir = Win32API.new('kernel32', 'GetWindowsDirectory', 'PL', 'L')
+ end
+ len = getdir.call(windir, windir.size)
+ windir = File.expand_path(windir[0, len])
end
- len = getdir.call(windir, windir.size)
- windir = File.expand_path(windir[0, len])
temp = File.join(windir, 'temp')
@@systmpdir = temp if File.directory?(temp) and File.writable?(temp)
rescue LoadError
パッチ後は、$SAFE=0の従来の値と同じものになりますが、TMP環境変数の設定に
は影響されないことで確認できます。
C:\home\arton\test>set TMP=c:\home\arton\test
C:\home\arton\test>ruby -rtmpdir -e '$SAFE=1;p Dir::tmpdir'
"C:/Users/arton/AppData/Local/Temp"
もっとも、Ruby-1.9.0-01だと、Tempfile.newもDir::tmpdirも、$SAFE>0では、
いずれもFile.expand_pathに引っかかってSecurityErrorになります。
できれば、こちらも動いて欲しいです。
--
arton <artonx@yahoo.co.jp>
--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/