diff src/imap/ngx_imap_parse.c @ 529:e5d7d0334fdb release-0.1.39

nginx-0.1.39-RELEASE import *) The changes in the ngx_http_charset_module: the "default_charset" directive was canceled; the "charset" directive sets the response charset; the "source_charset" directive sets the source charset only. *) Bugfix: the backend "WWW-Authenticate" header line did not transferred while the 401 response code redirecting. *) Bugfix: the ngx_http_proxy_module and ngx_http_fastcgi_module may close a connection before anything was transferred to a client; the bug had appeared in 0.1.38. *) Workaround: the Linux glibc crypt_r() initialization bug. *) Bugfix: the ngx_http_ssi_module did not support the relative URI in the "include virtual" command. *) Bugfix: if the backend response had the "Location" header line and nginx should not rewrite this line, then the 500 code response body was transferred; the bug had appeared in 0.1.29. *) Bugfix: some directives of the ngx_http_proxy_module and ngx_http_fastcgi_module were not inherited from the server to the location level; the bug had appeared in 0.1.29. *) Bugfix: the ngx_http_ssl_module did not support the certificate chain. *) Bugfix: the ngx_http_autoindex_module did not show correctly the long file names; the bug had appeared in 0.1.38. *) Bugfixes in IMAP/POP3 proxy in interaction with a backend at the login state.
author Igor Sysoev <igor@sysoev.ru>
date Thu, 14 Jul 2005 12:51:53 +0000
parents 7fa11e5c6e96
children 511a89da35ad
line wrap: on
line diff
--- a/src/imap/ngx_imap_parse.c
+++ b/src/imap/ngx_imap_parse.c
@@ -252,7 +252,7 @@ ngx_int_t ngx_imap_parse_command(ngx_ima
             goto invalid;
 
         case sw_literal_argument:
-            if (--s->literal_len) {
+            if (s->literal_len && --s->literal_len) {
                 break;
             }
 
@@ -281,7 +281,8 @@ ngx_int_t ngx_imap_parse_command(ngx_ima
             case LF:
                 goto done;
             default:
-                goto invalid;
+                state = sw_spaces_before_argument;
+                break;
             }
             break;