From: Timo Sirainen Date: Fri, 8 Oct 2021 13:02:04 +0000 (+0300) Subject: imap: Move client_add_input() content to calling functions X-Git-Tag: 2.3.17~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d1b06bcf8c80a168bea68e15f6cb6599df41999d;p=thirdparty%2Fdovecot%2Fcore.git imap: Move client_add_input() content to calling functions --- diff --git a/src/imap/main.c b/src/imap/main.c index 3595deb2e9..7e5d432808 100644 --- a/src/imap/main.c +++ b/src/imap/main.c @@ -165,9 +165,9 @@ client_parse_imap_login_request(const unsigned char *data, size_t len, { size_t taglen; - i_assert(len > 0); - i_zero(input_r); + if (len == 0) + return; if (data[0] == '1') input_r->send_untagged_capability = TRUE; @@ -182,20 +182,6 @@ client_parse_imap_login_request(const unsigned char *data, size_t len, } } -static void -client_add_input(struct client *client, const unsigned char *client_input, - size_t client_input_size, struct imap_login_request *request_r) -{ - if (client_input_size > 0) { - client_parse_imap_login_request(client_input, client_input_size, - request_r); - if (request_r->input_size > 0) { - client_add_istream_prefix(client, request_r->input, - request_r->input_size); - } - } -} - static void client_send_login_reply(struct ostream *output, const char *capability_string, const char *preauth_username, @@ -346,8 +332,12 @@ static void main_stdio_run(const char *username) request.tag = getenv("IMAPLOGINTAG"); } else { const buffer_t *input_buf = t_base64_decode_str(input_base64); - client_add_input(client, input_buf->data, input_buf->used, - &request); + client_parse_imap_login_request(input_buf->data, input_buf->used, + &request); + if (request.input_size > 0) { + client_add_istream_prefix(client, request.input, + request.input_size); + } } client_create_finish_io(client); @@ -400,8 +390,13 @@ login_client_connected(const struct master_login_client *login_client, } if ((flags & MAIL_AUTH_REQUEST_FLAG_TLS_COMPRESSION) != 0) client->tls_compression = TRUE; - client_add_input(client, login_client->data, - login_client->auth_req.data_size, &request); + client_parse_imap_login_request(login_client->data, + login_client->auth_req.data_size, + &request); + if (request.input_size > 0) { + client_add_istream_prefix(client, request.input, + request.input_size); + } /* The order here is important: 1. Finish setting up rawlog, so all input/output is written there.