diff options
Diffstat (limited to 'src/imap/ngx_imap_auth_http_module.c')
-rw-r--r-- | src/imap/ngx_imap_auth_http_module.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/imap/ngx_imap_auth_http_module.c b/src/imap/ngx_imap_auth_http_module.c index 85728f46a..d39c29502 100644 --- a/src/imap/ngx_imap_auth_http_module.c +++ b/src/imap/ngx_imap_auth_http_module.c @@ -182,7 +182,10 @@ ngx_imap_auth_http_init(ngx_imap_session_t *s) rc = ngx_event_connect_peer(&ctx->peer); if (rc == NGX_ERROR || rc == NGX_BUSY || rc == NGX_DECLINED) { - ngx_close_connection(ctx->peer.connection); + if (ctx->peer.connection) { + ngx_close_connection(ctx->peer.connection); + } + ngx_destroy_pool(ctx->pool); ngx_imap_session_internal_server_error(s); return; @@ -489,10 +492,10 @@ ngx_imap_auth_http_process_headers(ngx_imap_session_t *s, ctx->errmsg.data = ctx->header_start; if (s->protocol == NGX_IMAP_POP3_PROTOCOL) { - size = sizeof("-ERR") - 1 + len + sizeof(CRLF) - 1; + size = sizeof("-ERR ") - 1 + len + sizeof(CRLF) - 1; } else { - size = s->tag.len + sizeof("NO") - 1 + len + size = s->tag.len + sizeof("NO ") - 1 + len + sizeof(CRLF) - 1; } @@ -1039,7 +1042,9 @@ ngx_imap_auth_http_create_request(ngx_imap_session_t *s, ngx_pool_t *pool, len = sizeof("GET ") - 1 + ahcf->uri.len + sizeof(" HTTP/1.0" CRLF) - 1 + sizeof("Host: ") - 1 + ahcf->host_header.len + sizeof(CRLF) - 1 - + sizeof("Auth-Method: plain" CRLF) - 1 + + sizeof("Auth-Method: ") - 1 + + ngx_imap_auth_http_method[s->auth_method].len + + sizeof(CRLF) - 1 + sizeof("Auth-User: ") - 1 + login.len + sizeof(CRLF) - 1 + sizeof("Auth-Pass: ") - 1 + passwd.len + sizeof(CRLF) - 1 + sizeof("Auth-Salt: ") - 1 + s->salt.len |