[#39863] forループの速度 — Masahiro Sato <msato@...>

15 messages 2004/07/20

[#39868] イテレータとfor文 — OOTANI TAKASHI <otn@...5.so-net.ne.jp>

大谷と申します。

31 messages 2004/07/20
[#39886] Re: イテレータとfor文 — Tietew <tietew-ml-ruby-list@...> 2004/07/21

[ruby-list:39885] Re: Stringでのバックスラッシュ記法の有効化について

From: Tietew <tietew-ml-ruby-list@...>
Date: 2004-07-21 03:12:26 UTC
List: ruby-list #39885
On Wed, 21 Jul 2004 01:08:09 +0900
In article <20040720002008.DF3F.NOWAKE@fiercewinds.net>
[[ruby-list:39867] Stringでのバックスラッシュ記法の有効化について]
Nowake <nowake@fiercewinds.net> wrote:

> 通常、String#inspectで文字列を処理した場合、\nや\tなどの制御コードはバッ
> クスラッシュ記法に合わせて文字化されて出力されますが、この文字化されたバッ
> クスラッシュ記法を再び制御コードに戻す方法はありませんでしょうか?
 :
> という処理を行いたいのですが、evalを使用した方法だと、汚染された文字列に
> 対しては危険なので、もっと安全に行えるような方法は無いか探しています。

inspect された文字列は # がクオートされないので eval は危険です。
inspect の代わりに String#dump を使ってください。そうすれば 
$SAFE=4 で eval することで安全になります。

def safe_eval(e)
  e = e.dup.taint
  Thread.start { $SAFE=4; eval(e) }.value
end

p s = "\t test  \n  test \n"
p t = s.dump
p e = safe_eval(t)


—[ Tietew ]——————————————————————————
 メ : tietew@tietew.net / tietew@raug.net / tietew@masuclub.net
ホペ: http://www.tietew.net/     Tietew Windows Lab.
      http://www.masuclub.net/   鱒倶楽部
指紋: 26CB 71BB B595 09C4 0153  81C4 773C 963A D51B 8CAA


In This Thread

Prev Next