2007年12月11日

[mew-dist 27946] Re: "V"

ごぶさたしています.乃村です.

> 山本です。
>
> とりあえず、"V" コマンドを commit しておきました。

cmew.rb について,

Message-ID: <000801c7c726$6dc59b20$0600a8c0@xxxxx>
charset="us-ascii"

という,変わったメールを register すると落ちました.

/usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/errors.rb:94:in `check': near "us": syntax error (SQLite3::SQLException)
from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/statement.rb:71:in `initialize'
from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/database.rb:184:in `new'
from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/database.rb:184:in `prepare'
from /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.2.1/lib/sqlite3/database.rb:211:in `execute'
from ./cmew.rb:91:in `register'
from /usr/lib/ruby/1.8/find.rb:39:in `find'
from /usr/lib/ruby/1.8/find.rb:38:in `catch'
from /usr/lib/ruby/1.8/find.rb:38:in `find'
from ./cmew.rb:79:in `register'
from ./cmew.rb:107

おそらく,charset="us-ascii" 部分がそのまま 2行目にあるため,
check_id の正規表現にひっかからないんだと思います.
その結果 SQL 文に 「" 」 がまぎれ込んでしまいます.

^$ の代わりに \A\z を使うと動いているようです:

--- cmew.rb 2007-12-07 18:08:51.000000000 +0900
+++ cmew-debug.rb 2007-12-11 11:38:45.000000000 +0900
@@ -29,7 +29,7 @@

def check_id(id)
return nil if id == nil
- if id =~ /^<[-a-zA-Z0-9!#\$%&\'\*\+\/=\?\^_`{}|~\.@]+>$/
+ if id =~ /\A<[-a-zA-Z0-9!#\$%&\'\*\+\/=\?\^_`{}|~\.@]+>\z/
return id
else
return nil

投稿者 xml-rpc : 2007年12月11日 11:48
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/67484
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。