[#39548] [Bug #2291] Net::FTPでソケットをオープンする前にbinary=を呼び出すと落ちる — Akira Matsuda <redmine@...>

Bug #2291: Net::FTPでソケットをオープンする前にbinary=を呼び出すと落ちる

10 messages 2009/10/27

[#39592] infinite recursive call to C function — Yusuke ENDOH <mame@...>

遠藤です。

17 messages 2009/10/30
[#39596] Re: infinite recursive call to C function — Yukihiro Matsumoto <matz@...> 2009/10/30

まつもと ゆきひろです

[#39599] Re: infinite recursive call to C function — Nobuyoshi Nakada <nobu@...> 2009/11/02

なかだです。

[#39601] Re: infinite recursive call to C function — Yukihiro Matsumoto <matz@...> 2009/11/02

まつもと ゆきひろです

[ruby-dev:39471] Re: [Bug #2187] Net::IMAP::ResponseParseError

From: Shugo Maeda <shugo@...>
Date: 2009-10-12 14:15:01 UTC
List: ruby-dev #39471
前田です。

2009年10月9日23:01 Masahiro Tomita <redmine@ruby-lang.org>:
> RFC 3501 の resp-text-code は次のようになっていて atom だけでも OK なはずなのですが、
(snip)
> net/imapd.rb の ResponseParser#resp_text_code() は atom の後に SP と TEXT が
> 必須になってしまっていて、"* OK [CLOSED] Previous mailbox closed." のような応答で
> エラーになってしまいます。

実は1.9では修正ずみだったのですが、添付のパッチでどうでしょうか?
問題ないようであれば、ruby_1_8にはバックポートしておきます。
1.8.7については卜部さんの判断におまかせします。

-- 
Shugo Maeda

Attachments (1)

imap.rb.diff (868 Bytes, text/x-diff)
Index: lib/net/imap.rb
===================================================================
--- lib/net/imap.rb	(revision 24066)
+++ lib/net/imap.rb	(working copy)
@@ -2764,11 +2764,16 @@
           match(T_SPACE)
           result = ResponseCode.new(name, number)
         else
-          match(T_SPACE)
-          @lex_state = EXPR_CTEXT
-          token = match(T_TEXT)
-          @lex_state = EXPR_BEG
-          result = ResponseCode.new(name, token.value)
+          token = lookahead
+          if token.symbol == T_SPACE
+            shift_token
+            @lex_state = EXPR_CTEXT
+            token = match(T_TEXT)
+            @lex_state = EXPR_BEG
+            result = ResponseCode.new(name, token.value)
+          else
+            result = ResponseCode.new(name, nil)
+          end
         end
         match(T_RBRA)
         @lex_state = EXPR_RTEXT

In This Thread