# Freeze Tempfile#path

**URL:** <https://www.ruby-forum.com/t/freeze-tempfile-path/141317>\
**Category:** Development\
**Created:** [June 24, 2008, 5:48pm UTC](https://www.ruby-forum.com/t/freeze-tempfile-path/141317 "2008-06-24T17:48:37Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Keita\_Y](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/k/ed8c4c/32.png) [@Keita\_Y](https://www.ruby-forum.com/u/Keita_Y)\
**Post date:** [June 24, 2008, 5:48pm UTC](https://www.ruby-forum.com/t/freeze-tempfile-path/141317/1 "2008-06-24T17:48:37Z")

</div>

e$B;38}$H?=$7$^$9!#e(B  
tempfile.rb e$B$K$_$1$ke(B Tempfile#path (@tmpname)  
e$B$NCM$re(BTempfilee$B%_%V%8%’%/%H:n@.;~$Ke(B freeze  
e$B$9$k$?$a$N%Q%C%A$rEj9FCW$7$^$9!#e(B

e$B8=:\_e(B 1.8, 1.9 e$B6&$Ke(B tempfile.rb e$B$K$\*$1$ke(B Tempfile#path  
(@tmpname) e$B$NCM$Oe(B freeze  
e$B$5$l$F$$$^$;$s!#$3$N$?$a!"e(B

- e$B4D6-JQ?te(B TMP e$BEy$,@\_Dj$5$l$F$$$k$3$He(B
- 

e$B%;!\<%U%l%Y%ke(B0e$B$Ge(BTempfilee$B%\*%V%8%’%/%H$,:n@.$5$l$F$$$k$3$He(B

e$B$NFsE@$r\>r7o$H$7$F!"%;!\<%U%l%Y%ke(B4e$B4D6-$+$iG$0U$N%U%!%$%k$r:o=|$G$-$k2DG=@-$,$"$j$^$9!#e(B

$SAFE = 0  
require “tempfile”

tmp = Tempfile.new(“test”)

Thread.new do  
$SAFE = 4  
eval(‘tmpfile.path.replace(“hello.txt”)’)  
end.join

# =\> removing hello.txt…done

e$B$3$l$O%;!\<%U%l%Y%ke(B4e$B4D6-$rF3F~$9$k0JA0$Ke(B tmpfile.path.freeze  
e$B$r9T$J$&$3$H$G4JC1$KKI$0$3$H$,=PMh$k$N$G$9$,!“e(Btmpfile.path  
e$B$NCM$,JQ992DG=$G$”$kMxE@$O$J$$$H;W$o$l$^$9$N$G!"e(BTempfile  
e$B%_%V%8%’%/%H$,:n@.$5$l$?;~E@$Ge(B @tmpname e$B$re(B freeze  
e$B$7$F$_$$$?J}$,NI$$$H9M$($^$9!#$$$+$,$G$7$g$&$+!#e(B

# Index: lib/tempfile.rb

— lib/tempfile.rb (revision 17564)  
+++ lib/tempfile.rb (working copy)  
@@ -40,6 +40,7 @@

```
   begin

```

tmpname = File.join(tmpdir, make\_tmpname(basename, n))

- 

```
   tmpname.freeze

```

lock = tmpname + ‘.lock’  
n += 1  
end while @@cleanlist.include?(tmpname) or

* * *

e$BKL3$F;Bg3XBg3X1!J83X8&5f2J@lLg8&5f0we(B  
e$B;38}7DB@e(B  
removed\_email\_address@domain.invalid
