<?xml version="1.0" encoding="EUC-JP"?>
<?xml-stylesheet href="rss.css" type="text/css"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:xhtml="http://www.w3.org/1999/xhtml" xml:lang="ja-JP">
	<channel rdf:about="http://www.sabamiso.net/yoggy/tdiary/index.rdf">
	<title>yoggy's diary〜せかいのすみっこから〜</title>
	<link>http://www.sabamiso.net/yoggy/tdiary/</link>
	<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/" />
	<description></description>
	<dc:creator>yoggy</dc:creator>
	<dc:rights>Copyright 2008 yoggy, copyright of comments by respective authors</dc:rights>
	<items><rdf:Seq>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080910#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080908#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080901#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080829#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080820#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080812#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080811#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080802#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080623#p01"/>
<rdf:li rdf:resource="http://www.sabamiso.net/yoggy/tdiary/?date=20080624#p01"/>
</rdf:Seq></items>
</channel>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080910#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080910#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080910#p01" />
<dc:date>2008-09-10T14:38:26+09:00</dc:date>
<title>liboscpack</title>
<dc:creator>yoggy</dc:creator>
<description>oscpackをVC8で使えるライブラリにしてみたので公開。 liboscpack_1_0_2.zip とりあえず、使うだけならincludeとlibディレクトリだけあればOKです。</description>
<content:encoded><![CDATA[<h3>liboscpack</h3><p><a href="http://www.audiomulch.com/~rossb/code/oscpack/">oscpack</a>をVC8で使えるライブラリにしてみたので公開。</p>
<ul>
<li><a href="http://www.sabamiso.net/yoggy/tdiary/etc/liboscpack_1_0_2.zip">liboscpack_1_0_2.zip</a></li>
</ul>
<p>とりあえず、使うだけならincludeとlibディレクトリだけあればOKです。</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080910#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080908#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080908#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080908#p01" />
<dc:date>2008-09-08T14:04:36+09:00</dc:date>
<title>TENORI-ON Unboxing</title>
<dc:creator>yoggy</dc:creator>
<description>抽選販売で当選したよー！ まだ全然さわれてないけど、練習してうまく使えるようになったら今度のイベントで使ってみようかな？</description>
<content:encoded><![CDATA[<h3>TENORI-ON Unboxing</h3><p>抽選販売で当選したよー！</p>
<p><img src="http://farm4.static.flickr.com/3107/2838196677_43d427f1fb_m.jpg" alt="2838196677_43d427f1fb_m.jpg">
<img src="http://farm4.static.flickr.com/3250/2838196875_15e18510f0_m.jpg" alt="2838196875_15e18510f0_m.jpg">
<img src="http://farm4.static.flickr.com/3098/2839030036_84b78eb1d8_m.jpg" alt="2839030036_84b78eb1d8_m.jpg">
<img src="http://farm4.static.flickr.com/3020/2838197735_1403433d11_m.jpg" alt="2838197735_1403433d11_m.jpg">
<img src="http://farm4.static.flickr.com/3283/2838197955_4be69524d4_m.jpg" alt="2838197955_4be69524d4_m.jpg">
<img src="http://farm4.static.flickr.com/3022/2839030938_a49c91e430_m.jpg" alt="2839030938_a49c91e430_m.jpg"></p>
<p>まだ全然さわれてないけど、練習してうまく使えるようになったら今度のイベントで使ってみようかな？</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080908#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080901#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080901#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080901#p01" />
<dc:date>2008-09-01T12:50:50+09:00</dc:date>
<title>LL Futureに行ってきた</title>
<dc:creator>yoggy</dc:creator>
<description>簡単な感想メモ。遅刻してしまったので、LLで未来を発明するのセッションから。 LLで未来を発明する 言語大統一理論ｗ サイコー!?フレームワーク Railsするなら暗黒面に落ちないとだめ？ LLでアート 個人的に一番面白かったかもしれないセッション action-codingにひどく感銘を受けたので、現在練習中。 どうせだったらロビーで実際に作品展示とかすれば盛り上がったのにと思う。 キミならどう書く？ プロゴルファーすげー 古い言語、新しい言語 LLVMにちょっと興味持った。 司会しゃべり過ぎｗ ライトニング・トーク Narioやばい Pitのプ..</description>
<content:encoded><![CDATA[<h3>LL Futureに行ってきた</h3><p>簡単な感想メモ。遅刻してしまったので、LLで未来を発明するのセッションから。</p>
<ul>
<li>LLで未来を発明する<ul>
<li>言語大統一理論ｗ</li>
</ul></li>
<li>サイコー!?フレームワーク　<ul>
<li>Railsするなら暗黒面に落ちないとだめ？</li>
</ul></li>
<li>LLでアート<ul>
<li>個人的に一番面白かったかもしれないセッション</li>
<li>action-codingにひどく感銘を受けたので、現在練習中。</li>
<li>どうせだったらロビーで実際に作品展示とかすれば盛り上がったのにと思う。</li>
</ul></li>
<li>キミならどう書く？<ul>
<li>プロゴルファーすげー</li>
</ul></li>
<li>古い言語、新しい言語<ul>
<li>LLVMにちょっと興味持った。</li>
<li>司会しゃべり過ぎｗ</li>
</ul></li>
<li>ライトニング・トーク<ul>
<li>Narioやばい</li>
<li>Pitのプレゼンが無駄に凝りすぎｗ</li>
<li>その発想はなかったｗ＞Babel21</li>
<li>wWWwwww</li>
</ul></li>
<li>閉会<ul>
<li>Larry Wallさんはいい人だなーと思った</li>
</ul></li>
</ul>
<p>全体的に濃いセッションが多かったけど、長丁場だったのでちょっとつかれたー</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080901#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080829#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080829#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080829#p01" />
<dc:date>2008-08-29T13:01:53+09:00</dc:date>
<title>ActiveRecordのメモ</title>
<dc:creator>yoggy</dc:creator>
<description>ちょっとだけ使ってみたので、簡単な使い方のメモ。 #!/usr/bin/ruby # # 実行前に次のようにDB,テーブルを作成してください # # $ sqlite3 account.db # sqlite create table accounts(id integer primary key, name text, mail text); # sqlite .quit # # 参考文献 # http://jp.rubyist.net/magazine/?0006-RubyOnRails # require 'rubygems' require 'activerecord' require 'pp' ActiveRecord::Base.establish_connection( :adapter = 'sqlite3', :database = 'account.db' ) class Account ActiveRecord::Base end puts &quot;==== delete..</description>
<content:encoded><![CDATA[<h3>ActiveRecordのメモ</h3><p>ちょっとだけ使ってみたので、簡単な使い方のメモ。</p>
<pre>
#!/usr/bin/ruby
#
# 実行前に次のようにDB,テーブルを作成してください
#
#   $ sqlite3 account.db
#   sqlite&gt; create table accounts(id integer primary key, name text, mail text);
#   sqlite&gt; .quit
#
# 参考文献
#   http://jp.rubyist.net/magazine/?0006-RubyOnRails
#

require 'rubygems'
require 'activerecord'
require 'pp'

ActiveRecord::Base.establish_connection(
  :adapter =&gt; 'sqlite3',
  :database =&gt; 'account.db'
)

class Account &lt; ActiveRecord::Base
end
  
puts "==== delete all data ===="
Account.delete_all

puts "==== insert ===="
5.times {|i|
  a = Account.new
  a.name = "hoge#{i}"
  a.mail = a.name + '@example.com'
  a.save  
}
a = Account.find(:all)
pp a

puts "==== select 1 ===="
10.times {|i|
  a = Account.find_by_name("hoge#{i}")
  if a
    pp a
  end  
}

puts "==== select 2 ===="
name = "hoge3"
a = Account.find(:first, :conditions =&gt; ["name=?" , name])
pp a
 
puts "==== update ===="
5.times {|i|
  a = Account.new
  a = Account.find_by_name("hoge#{i}")
  a.name = "hoge-#{i}"
  a.save
}
a = Account.find(:all)
pp a
 
puts "==== delete ===="
a = Account.find(:all)
a.each {|a|
  a.destroy
}
</pre>
<p>"find_by_ほげほげ"とかのお約束は少し覚えないとだめだけど、
お手軽にDBを触れていい感じですねー</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080829#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080820#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080820#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080820#p01" />
<dc:date>2008-08-20T14:46:34+09:00</dc:date>
<title>uuidtoolsのメモ</title>
<dc:creator>yoggy</dc:creator>
<description>$ sudo gem install uuidtools $ irb irb(main):001:0 require 'rubygems' = true irb(main):002:0 require 'uuidtools' = true irb(main):003:0 UUID.random_create = #UUID:0x-24271ce6 UUID:fe820dde-6942-45f1-b7cd-72992adfa543 irb(main):004:0 UUID.timestamp_create = #UUID:0x-242731e0 UUID:9b9fb998-6e7a-11dd-a27d-112233445566 UUID.timestamp_createは中でifconfigを呼び出してMACアドレスを取得するので、/sbin/とかにパスが通ってないと実行できないので注意。</description>
<content:encoded><![CDATA[<h3>uuidtoolsのメモ</h3><pre>
$ sudo gem install uuidtools
$ irb
irb(main):001:0&gt; require 'rubygems'
=&gt; true
irb(main):002:0&gt; require 'uuidtools'
=&gt; true
irb(main):003:0&gt; UUID.random_create
=&gt; #&lt;UUID:0x-24271ce6 UUID:fe820dde-6942-45f1-b7cd-72992adfa543&gt;
irb(main):004:0&gt;  UUID.timestamp_create
=&gt; #&lt;UUID:0x-242731e0 UUID:9b9fb998-6e7a-11dd-a27d-112233445566&gt;
</pre>
<p>UUID.timestamp_createは中でifconfigを呼び出してMACアドレスを取得するので、/sbin/とかにパスが通ってないと実行できないので注意。</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080820#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080812#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080812#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080812#p01" />
<dc:date>2008-08-12T17:39:12+09:00</dc:date>
<title>サイトウサンTシャツ</title>
<dc:creator>yoggy</dc:creator>
<description>会社のエレベータの中で撮影。Tシャツの生地がしっかりしていていいね！</description>
<content:encoded><![CDATA[<h3><a href="http://hina.sophis.info/character/saito/t/t_2008.php">サイトウサンTシャツ</a></h3><p>
<img src="http://farm4.static.flickr.com/3016/2755648981_51f57c91f3_m.jpg" alt="2755648981_51f57c91f3_m.jpg"></p>
<p>会社のエレベータの中で撮影。Tシャツの生地がしっかりしていていいね！</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080812#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080811#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080811#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080811#p01" />
<dc:date>2008-08-11T16:06:58+09:00</dc:date>
<title>b-mobile 3G</title>
<dc:creator>yoggy</dc:creator>
<description>これ何？と思って引っ張ってみると… えー、b-mobileなのにFOMAって書いてるし。 ちゃんと新しいロゴになってましたｗ 試しにCradlePoint PHS300に刺してみたのですが認識しませんでした。今後のファームウェアアップデートに期待。 ちなみにAPNは、AT+CGDCONT?で表示できる様子。</description>
<content:encoded><![CDATA[<h3>b-mobile 3G</h3><p><img src="http://farm4.static.flickr.com/3218/2752820198_1ab60e97cb_m.jpg" alt="2752820198_1ab60e97cb_m.jpg"></p>
<p>これ何？と思って引っ張ってみると…</p>
<p><img src="http://farm3.static.flickr.com/2030/2751986203_bd59a1b2e4_m.jpg" alt="2751986203_bd59a1b2e4_m.jpg">
<img src="http://farm4.static.flickr.com/3055/2751986331_340600eaf7_m.jpg" alt="2751986331_340600eaf7_m.jpg"></p>
<p>えー、b-mobileなのにFOMAって書いてるし。</p>
<p><img src="http://farm4.static.flickr.com/3178/2752820632_c59b6d2327_m.jpg" alt="2752820632_c59b6d2327_m.jpg"></p>
<p>ちゃんと新しいロゴになってましたｗ</p>
<p>試しに<a href="http://www.cradlepoint.com/phs300/phs300.php">CradlePoint PHS300</a>に刺してみたのですが認識しませんでした。今後のファームウェアアップデートに期待。</p>
<p>ちなみにAPNは、AT+CGDCONT?で表示できる様子。</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080811#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080802#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080802#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080802#p01" />
<dc:date>2008-08-03T17:57:43+09:00</dc:date>
<title>Chumbyを有線LANで使う</title>
<dc:creator>yoggy</dc:creator>
<description>この前のアップデートで、Ethernet で有線LAN接続するが使えるようになったみたいです。 動作確認に使用したのはLUA-U2-KTX です。usbnetで使えるやつ。 以前のファームだとこの方法ではうまく使えなかったのですが、アップデートでこのあたりのドライバがちゃんと動くように対応されたのかな？</description>
<content:encoded><![CDATA[<h3>Chumbyを有線LANで使う</h3><p>この前のアップデートで、<a href="http://ja.chumby.wikia.com/wiki/%E3%81%9D%E3%81%AE%E4%BB%96%E3%81%AETips#Ethernet_.E3.81.A7.E6.9C.89.E7.B7.9ALAN.E6.8E.A5.E7.B6.9A.E3.81.99.E3.82.8B">Ethernet で有線LAN接続する</a>が使えるようになったみたいです。</p>
<p>動作確認に使用したのは<a href="http://buffalo.jp/products/catalog/item/l/lua-u2-ktx/">LUA-U2-KTX </a>です。usbnetで使えるやつ。</p>
<p>以前のファームだとこの方法ではうまく使えなかったのですが、アップデートでこのあたりのドライバがちゃんと動くように対応されたのかな？</p>
<p><img src="http://farm4.static.flickr.com/3059/2727835590_1243639c4e_m.jpg" alt="2727835590_1243639c4e_m.jpg"></p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080802#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080623#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080623#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080623#p01" />
<dc:date>2008-06-24T10:08:52+09:00</dc:date>
<title>任意のコードが実行される脆弱性について(www.ruby-lang.org)</title>
<dc:creator>yoggy</dc:creator>
<description>※注: 見てたところが違ってたので、下のほうに追記してます。 パッと見て何が問題か理解できなかったのでソースを見てみる。 $ svn export http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_229/ v1_8_6_229 $ svn export http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_230/ v1_8_6_230 $ diff -d -r diff -d -r v1_8_6_229 v1_8_6_230 diff -d -r v1_8_6_229/ChangeLog v1_8_6_230/ChangeLog 0a1,4 Fri Jun 20 18:24:18 2008 Nobuyoshi Nakada nobu@ruby-lang.org * string.c (rb_str_buf_append): should infect. diff -d -r v1_8_..</description>
<content:encoded><![CDATA[<h3><a href="http://www.ruby-lang.org/ja/news/2008/06/20/arbitrary-code-execution-vulnerabilities/">任意のコードが実行される脆弱性について</a>(www.ruby-lang.org)</h3><p>※注: 見てたところが違ってたので、下のほうに追記してます。</p>
<p>パッと見て何が問題か理解できなかったのでソースを見てみる。</p>
<pre>
$ svn export http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_229/ v1_8_6_229
$ svn export http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_230/ v1_8_6_230
$ diff -d -r diff -d -r v1_8_6_229 v1_8_6_230
diff -d -r v1_8_6_229/ChangeLog v1_8_6_230/ChangeLog
0a1,4
&gt; Fri Jun 20 18:24:18 2008  Nobuyoshi Nakada  &lt;nobu@ruby-lang.org&gt;
&gt; 
&gt;       * string.c (rb_str_buf_append): should infect.
&gt; 
diff -d -r v1_8_6_229/string.c v1_8_6_230/string.c
6c6
&lt;   $Date: 2008-06-20 15:53:16 +0900 (金, 20  6月 2008) $
---
&gt;   $Date: 2008-06-20 18:24:53 +0900 (金, 20  6月 2008) $
781c781,783
&lt;     return str_buf_cat(str, RSTRING(str2)-&gt;ptr, RSTRING(str2)-&gt;len);
---
&gt;     str_buf_cat(str, RSTRING(str2)-&gt;ptr, RSTRING(str2)-&gt;len);
&gt;     OBJ_INFECT(str, str2);
&gt;     return str;
diff -d -r v1_8_6_229/version.h v1_8_6_230/version.h
5c5
&lt; #define RUBY_PATCHLEVEL 229
---
&gt; #define RUBY_PATCHLEVEL 230
</pre>
<p>ソースコードの中で変わっているのは、strings.cのrb_str_buf_append()の内容だけ。</p>
<p>OBJ_INFECT()とはなんだろ？ということで、ruby.hを見ると</p>
<pre>
#define OBJ_INFECT(x,s) do {if (FL_ABLE(x) &amp;&amp; FL_ABLE(s)) RBASIC(x)-&gt;flags |= RBASIC(s)-&gt;flags &amp; FL_TAINT;} while (0)
</pre>
<p>という感じ。汚染フラグを伝染させるマクロな様子。なるほど。</p>
<p>で、rb_str_buf_append()がどこで使われているかというと…</p>
<pre>
$ cd v1_8_6_230
$ grep rb_str_buf_append * 
ChangeLog:      * string.c (rb_str_buf_append): should infect.
ChangeLog:      * string.c (rb_str_buf_append): fixed unsafe use of alloca,
array.c:            rb_str_buf_append(result, sep);
array.c:        rb_str_buf_append(result, tmp);
array.c:        rb_str_buf_append(str, s);
error.c:    rb_str_buf_append(str, klass);
error.c:    rb_str_buf_append(str, exc);
eval.c:     rb_str_buf_append(str, rb_inspect(data-&gt;klass));
eval.c:     rb_str_buf_append(str, rb_inspect(v));
eval.c:     rb_str_buf_append(str, rb_inspect(data-&gt;recv));
eval.c:     rb_str_buf_append(str, rb_inspect(v));
file.c:         rb_str_buf_append(result, sep);
file.c: rb_str_buf_append(result, tmp);
hash.c:    rb_str_buf_append(str, str2);
hash.c:    rb_str_buf_append(str, str2);
hash.c:     rb_str_buf_append(str, i);
intern.h:VALUE rb_str_buf_append _((VALUE, VALUE));
re.c:            rb_str_buf_append(source, v);
string.c:rb_str_buf_append(str, str2)
string.c:           return rb_str_buf_append(str, str2);
</pre>
<p>む、結構いろんなところで使われているのね…</p>
<p>とりあえず脆弱性の原因としては、$SAFE=4とかのオブジェクトの汚染モデルをあてにしているプログラムで、意図しないところで汚染フラグが外れて困ることがあるよという認識でいいのかな？</p>
<h4>追記</h4>
<p>見てたところがちょっと違ってました（汗</p>
<p>1.8.6-p228のChangeLogを見たら</p>
<pre>
Wed Jun 18 22:25:10 2008  URABE Shyouhei  &lt;shyouhei@ruby-lang.org&gt;

        * array.c (ary_new, rb_ary_initialize, rb_ary_store,
          rb_ary_aplice, rb_ary_times): integer overflows should be
          checked. based on patches from Drew Yao &lt;ayao at apple.com&gt;
          fixed CVE-2008-2726

        * string.c (rb_str_buf_append): fixed unsafe use of alloca,
          which led memory corruption. based on a patch from Drew Yao
          &lt;ayao at apple.com&gt; fixed CVE-2008-2726

        * sprintf.c (rb_str_format): backported from trunk.

        * intern.h: ditto.
</pre>
<p>ということみたいなので、1.8.6-p227と1.8.6-p228の差分をみると関係ありそうなのは下記のところかな？</p>
<pre>
$ svn export http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_227/ v1_8_6_227
$ svn export http://svn.ruby-lang.org/repos/ruby/tags/v1_8_6_228/ v1_8_6_228
$ diff -d -r v1_8_6_227 v1_8_6_228 | lv
      ・
      ・
      ・
diff -d -r v1_8_6_227/array.c v1_8_6_228/array.c
      ・
      ・
      ・
&gt; #define ARY_MAX_SIZE (LONG_MAX / sizeof(VALUE))
123c124
&lt;     if (len &gt; 0 &amp;&amp; len * sizeof(VALUE) &lt;= len) {
---
&gt;     if (len &gt; ARY_MAX_SIZE) {
296c297
&lt;     if (len &gt; 0 &amp;&amp; len * (long)sizeof(VALUE) &lt;= len) {
---
&gt;     if (len &gt; ARY_MAX_SIZE) {
360a362,364
&gt;     else if (idx &gt;= ARY_MAX_SIZE) {
&gt;       rb_raise(rb_eIndexError, "index %ld too big", idx);
&gt;     }
369,371c373,374
&lt;       new_capa += idx;
&lt;       if (new_capa * (long)sizeof(VALUE) &lt;= new_capa) {
&lt;           rb_raise(rb_eArgError, "index too big");
---
&gt;       else if (new_capa &gt;= ARY_MAX_SIZE - idx) {
&gt;           new_capa = (ARY_MAX_SIZE - idx) / 2;
372a376
&gt;       new_capa += idx;
978a983,985
&gt;       if (len &lt; 0 || len &gt; ARY_MAX_SIZE) {
&gt;           rb_raise(rb_eIndexError, "index %ld too big", beg);
&gt;       }
2381c2388
&lt;     if (LONG_MAX/len &lt; RARRAY(ary)-&gt;len) {
---
&gt;     if (ARY_MAX_SIZE/len &lt; RARRAY(ary)-&gt;len) {

  ※lenがでかいとlen * sizeof(VALUE)とかnew_capa * (long)sizeof(VALUE)とかが負になる可能性がある

      ・
      ・
      ・
diff -d -r v1_8_6_227/string.c v1_8_6_228/string.c
6c6
      ・
      ・
      ・
782a776,778
&gt;     if (len &lt; 0 || (capa+1) &gt; LONG_MAX / 2) {
&gt;       rb_raise(rb_eArgError, "string sizes too big");
&gt;     }

  ※ rb_str_buf_append()関数の中で、
  
       if (capa &lt;= len) {
           while (len &gt; capa) {
                capa = (capa + 1) * 2;
           }
           RESIZE_CAPA(str, capa);
       }
       
     とappend先のstrのバッファをリサイズしているところがあるが、
     ここで先の(capa+1) &gt; LONG_MAX / 2のチェックをしていないと
     capa = (capa + 1) * 2が負になり、RESIZE_CAPA()がおかしくなる可能性。
</pre>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080623#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
<item rdf:about="http://www.sabamiso.net/yoggy/tdiary/?date=20080624#p01">
<link>http://www.sabamiso.net/yoggy/tdiary/?date=20080624#p01</link>
<xhtml:link xhtml:rel="alternate" xhtml:media="handheld" xhtml:type="text/html" xhtml:href="http://www.sabamiso.net/yoggy/tdiary/?date=20080624#p01" />
<dc:date>2008-06-24T09:05:13+09:00</dc:date>
<title>iPod touch unboxing</title>
<dc:creator>yoggy</dc:creator>
<description>iPhoneに期待してちょっと待ってたけど、ソフトバンクは7,280円からでemobileと比べるとちょっと割高感あるし、ドコモは期待できなさそうだしということで、iPod touchを買ってしまいましたｗ EMONSTER+WMWifiRouterと組み合わせて使ってみたけど、なかなか快適。</description>
<content:encoded><![CDATA[<h3>iPod touch unboxing</h3><p>iPhoneに期待してちょっと待ってたけど、<a href="http://slashdot.jp/apple/08/06/23/085235.shtml">ソフトバンクは7,280円から</a>でemobileと比べるとちょっと割高感あるし、ドコモは期待できなさそうだしということで、iPod touchを買ってしまいましたｗ</p>
<p><img src="http://farm4.static.flickr.com/3246/2604574212_0d3db18cec_m.jpg" alt="2604574212_0d3db18cec_m.jpg">
<img src="http://farm4.static.flickr.com/3296/2603745823_9eff1a05b9_m.jpg" alt="2603745823_9eff1a05b9_m.jpg">
<img src="http://farm4.static.flickr.com/3089/2603746009_77d8bbab48_m.jpg" alt="2603746009_77d8bbab48_m.jpg">
<img src="http://farm4.static.flickr.com/3051/2604574792_dc6f84ce42_m.jpg" alt="2604574792_dc6f84ce42_m.jpg">
<img src="http://farm4.static.flickr.com/3264/2604574962_8a504b8f19_m.jpg" alt="2604574962_8a504b8f19_m.jpg"></p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080423#p01">EMONSTER+WMWifiRouter</a>と組み合わせて使ってみたけど、なかなか快適。</p>
<p><a href="http://www.sabamiso.net/yoggy/tdiary/?date=20080624#c">ツッコミを入れる</a></p>]]></content:encoded>
</item>
</rdf:RDF>
