[#46143] るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果 — eiichi_maekawa@...
62 messages
2009/07/02
[#46144] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果
— KIMURA Koichi <kimura.koichi@...>
2009/07/03
木村です。
[#46153] Re: るびま 標準添付ライブラリ紹介 第3回のサンプル EUC-JPの結果
— "NARUSE, Yui" <naruse@...>
2009/07/03
成瀬です。
[#46165] Re: に関する1.8.6→1.8.7または、1.9へのバージョンアップ
— eiichi_maekawa@...
2009/07/05
前川です。
[#46281] rubyの変数の扱いについて
— "前川 映一" <eiichi_maekawa@...>
2009/08/17
前川です。
[#46283] Re: rubyの変数の扱いについて
— "(株)ネットフォレスト 植田裕之" <ueda@...>
2009/08/17
植田と申します。
[#46284] Re: rubyの変数の扱いについて
— "前川 映一" <eiichi_maekawa@...>
2009/08/17
前川です。
[#46286] Re: [ruby-list:46284 ]_Re:_rubyの変数の扱いについて
— 詫間 陽介 <yosuketakuma@...>
2009/08/17
変数宣言は無いですね.
[#46289] Re: [ruby-list:46284 ]_Re:_rubyの変数の扱いについて
— "前川 映一" <eiichi_maekawa@...>
2009/08/17
詫間さん ありがとうございました。
[#46189] Ruby MySQL テーブル一覧の取得要領
— eiichi_maekawa@...
2009/07/08
前川です。
[#46183] 1.8.6から1.8.7または、1.9へのバージョンアップ及びrailsのバージョンアップについて
— eiichi_maekawa@...
2009/07/07
前川です。
[#46190] Re: 1.8.6から1.8.7または、1.9へのバージョンアップ及びrailsのバージョンアップについて
— okkez <okkez000@...>
2009/07/08
okkez です。
[#46302] rubyのクラス内のメソッドの使用について
— "前川 映一" <eiichi_maekawa@...>
2009/08/20
前川です。
[#46303] rubyのメソッドの切り替えについて
— "前川 映一" <eiichi_maekawa@...>
2009/08/20
前川です。
[#46304] Re: rubyのメソッドの切り替えについて
— "NARUSE, Yui" <naruse@...>
2009/08/20
成瀬です。
[#46305] Re: [ruby-list:46304 ] Re: rubyのメソッドの切り替えについて
— "前川 映一" <eiichi_maekawa@...>
2009/08/20
成瀬さん
[#46146] 文字変換 — eiichi_maekawa@...
16 messages
2009/07/03
[#46147] Re: 文字変換
— Hidetoshi NAGAI <nagai@...>
2009/07/03
永井@知能.九工大です.
[#46148] Re: 文字変換
— eiichi_maekawa@...
2009/07/03
前川です。
[#46149] Re: 文字変換
— Hidetoshi NAGAI <nagai@...>
2009/07/03
永井@知能.九工大です.
[#46151] 文字から16進への変換方法について
— eiichi_maekawa@...
2009/07/03
[#46152] Re: 文字から16進への変換方法について
— rubikitch@...
2009/07/03
From: eiichi_maekawa@mhi.co.jp
[#46168] Re: 文字から16進への変換方法について
— eiichi_maekawa@...
2009/07/06
前川です。
[#46154] メソッドArgumentのParenthesisについて — Shingo Hagiwara <rindou@...>
本当にくだらない質問で申し訳ありません。
10 messages
2009/07/03
[#46155] Re: メソッドArgumentのParenthesisについて
— rubikitch@...
2009/07/03
From: Shingo Hagiwara <rindou@gmail.com>
[#46156] Re: メソッドArgumentのParenthesisについて
— "5.5" <5.5@...>
2009/07/03
5.5 です。
[#46178] ruby-chasen in 64bit machine — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
4 messages
2009/07/07
[#46205] set_encoding についての質問 — 大田黒俊夫 <toshio.otaguro@...>
初めて投稿します.Ruby 1.9.1 を使っていて,文字コードの扱いに慣れようと四苦八苦しています.
5 messages
2009/07/12
[#46216] ファイル出力の動作について — "Jun'ya Shimoda" <jun-shimo@...>
下田と申します。
6 messages
2009/07/16
[ruby-list:46246] Re: ruby-1.8.7で"Insecure: can't modify hash (SecurityError)"
From:
Kazuhiko <kazuhiko@...>
Date:
2009-07-31 08:25:35 UTC
List:
ruby-list #46246
かずひこです。 分かる範囲で補足します。 Kazuhiko wrote: > 添付のように、最近のruby-1.8系でtDiaryのセキュアモード($SAFE=4)で > "Insecure: can't modify hash (SecurityError)"というエラーが起き、遡って > みると、 > > http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=16081 > Author: knu > Date: Sat Apr 19 11:11:25 2008 UTC (15 months, 1 week ago) > Log Message: > > * array.c (rb_ary_equal, rb_ary_eql, rb_ary_hash, rb_ary_cmp): > Make Array#eql?, #hash, #== and #<=> use rb_exec_recursive() and > handle recursive data properly. > > * hash.c (hash_equal, rb_hash_hash): Make Hash#eql?, #hash and #== > use rb_exec_recursive() and handle recursive data properly. > > ↑この変更以降、このエラーが起きることがわかりました。 > > ちなみに、現在のruby_1_8ブランチの最新(rev.24312)に、上記の差分を逆適 > 応すれば、このエラーは起きません。sortで"can't modify hash"と言われるの > はバグのような気がするのですが、どうでしょうか? @referers.values.sort.reverse.each_with_index do |ary,idx| のsortのところでエラーになっていて、ここでのsort対象は、 [ [2, "http://..."], [1, "http://..."] ] みたいなArrayなのですが(リファラの方はtaintedだけど、これをuntaintして も状況は変わらず)、これをsortする際に、(array.cの)'handle recursive data properly'の変更のためにSecurity Errorが出ているようです。 そこで、添付のようなdirty hackでwork aroundになるのを確認しました。 r.16081の(array.cの)変更で、なぜここで$SAFE=4の際に"Insecure: can't modify hash (SecurityError)"が出るのかわかっていませんが、他に何か調べる べきことはありますか? よろしくお願いします。 かずひこ
Attachments (1)
tdiary.rb.avoid_security_error.diff
(621 Bytes, text/x-diff)
Index: tdiary.rb
===================================================================
--- tdiary.rb (revision 3488)
+++ tdiary.rb (working copy)
@@ -278,7 +278,11 @@
def each_referer( limit = 10 )
newer_referer
- @referers.values.sort.reverse.each_with_index do |ary,idx|
+ # dirty workaround to avoid recursive sort that
+ # causes SecurityError in @secure=true
+ # environment since
+ # http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=16081
+ @referers.values.sort_by{|e| "%08d_%s" % e}.reverse.each_with_index do |ary,idx|
break if idx >= limit
yield ary[0], ary[1]
end