Loading lib/imap.c +44 −27 Original line number Diff line number Diff line Loading @@ -371,6 +371,35 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len, return FALSE; /* Nothing for us */ } /*********************************************************************** * * imap_get_message() * * Gets the authentication message from the response buffer. */ static void imap_get_message(char *buffer, char** outptr) { size_t len = 0; char* message = NULL; /* Find the start of the message */ for(message = buffer + 2; *message == ' ' || *message == '\t'; message++) ; /* Find the end of the message */ for(len = strlen(message); len--;) if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' && message[len] != '\t') break; /* Terminate the message */ if(++len) { message[len] = '\0'; } *outptr = message; } /*********************************************************************** * * state() Loading Loading @@ -1076,9 +1105,9 @@ static CURLcode imap_state_auth_cram_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1087,21 +1116,8 @@ static CURLcode imap_state_auth_cram_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Terminate the challenge */ if(*chlg64 != '=') { for(len = strlen(chlg64); len--;) if(chlg64[len] != '\r' && chlg64[len] != '\n' && chlg64[len] != ' ' && chlg64[len] != '\t') break; if(++len) { chlg64[len] = '\0'; } } /* Get the challenge message */ imap_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_cram_md5_message(data, chlg64, conn->user, Loading Loading @@ -1129,9 +1145,9 @@ static CURLcode imap_state_auth_digest_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1140,9 +1156,8 @@ static CURLcode imap_state_auth_digest_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Get the challenge message */ imap_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_digest_md5_message(data, chlg64, conn->user, Loading Loading @@ -1236,8 +1251,9 @@ static CURLcode imap_state_auth_ntlm_type2msg_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; size_t len = 0; char *type2msg = NULL; char *type3msg = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1246,11 +1262,12 @@ static CURLcode imap_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { /* Get the challenge message */ imap_get_message(data->state.buffer, &type2msg); /* Create the type-3 message */ result = Curl_sasl_create_ntlm_type3_message(data, data->state.buffer + 2, conn->user, conn->passwd, &conn->ntlm, result = Curl_sasl_create_ntlm_type3_message(data, type2msg, conn->user, conn->passwd, &conn->ntlm, &type3msg, &len); /* Send the message */ Loading lib/pop3.c +44 −27 Original line number Diff line number Diff line Loading @@ -350,6 +350,35 @@ static bool pop3_endofresp(struct connectdata *conn, char *line, size_t len, return FALSE; /* Nothing for us */ } /*********************************************************************** * * pop3_get_message() * * Gets the authentication message from the response buffer. */ static void pop3_get_message(char *buffer, char** outptr) { size_t len = 0; char* message = NULL; /* Find the start of the message */ for(message = buffer + 2; *message == ' ' || *message == '\t'; message++) ; /* Find the end of the message */ for(len = strlen(message); len--;) if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' && message[len] != '\t') break; /* Terminate the challenge */ if(++len) { message[len] = '\0'; } *outptr = message; } /*********************************************************************** * * state() Loading Loading @@ -934,9 +963,9 @@ static CURLcode pop3_state_auth_cram_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -945,21 +974,8 @@ static CURLcode pop3_state_auth_cram_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Terminate the challenge */ if(*chlg64 != '=') { for(len = strlen(chlg64); len--;) if(chlg64[len] != '\r' && chlg64[len] != '\n' && chlg64[len] != ' ' && chlg64[len] != '\t') break; if(++len) { chlg64[len] = '\0'; } } /* Get the challenge message */ pop3_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_cram_md5_message(data, chlg64, conn->user, Loading Loading @@ -987,9 +1003,9 @@ static CURLcode pop3_state_auth_digest_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -998,9 +1014,8 @@ static CURLcode pop3_state_auth_digest_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Get the challenge message */ pop3_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_digest_md5_message(data, chlg64, conn->user, Loading Loading @@ -1094,8 +1109,9 @@ static CURLcode pop3_state_auth_ntlm_type2msg_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; size_t len = 0; char *type2msg = NULL; char *type3msg = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1104,11 +1120,12 @@ static CURLcode pop3_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { /* Get the type-2 message */ pop3_get_message(data->state.buffer, &type2msg); /* Create the type-3 message */ result = Curl_sasl_create_ntlm_type3_message(data, data->state.buffer + 2, conn->user, conn->passwd, &conn->ntlm, result = Curl_sasl_create_ntlm_type3_message(data, type2msg, conn->user, conn->passwd, &conn->ntlm, &type3msg, &len); /* Send the message */ Loading lib/smtp.c +44 −27 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ static void smtp_to_smtps(struct connectdata *conn) /*********************************************************************** * * pop3_endofresp() * smtp_endofresp() * * Checks for an ending SMTP status code at the start of the given string, but * also detects various capabilities from the EHLO response including the Loading Loading @@ -307,6 +307,35 @@ static bool smtp_endofresp(struct connectdata *conn, char *line, size_t len, return result; } /*********************************************************************** * * smtp_get_message() * * Gets the authentication message from the response buffer. */ static void smtp_get_message(char *buffer, char** outptr) { size_t len = 0; char* message = NULL; /* Find the start of the message */ for(message = buffer + 4; *message == ' ' || *message == '\t'; message++) ; /* Find the end of the message */ for(len = strlen(message); len--;) if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' && message[len] != '\t') break; /* Terminate the challenge */ if(++len) { message[len] = '\0'; } *outptr = message; } /*********************************************************************** * * state() Loading Loading @@ -914,9 +943,9 @@ static CURLcode smtp_state_auth_cram_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -925,21 +954,8 @@ static CURLcode smtp_state_auth_cram_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 4; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Terminate the challenge */ if(*chlg64 != '=') { for(len = strlen(chlg64); len--;) if(chlg64[len] != '\r' && chlg64[len] != '\n' && chlg64[len] != ' ' && chlg64[len] != '\t') break; if(++len) { chlg64[len] = '\0'; } } /* Get the challenge message */ smtp_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_cram_md5_message(data, chlg64, conn->user, Loading Loading @@ -967,9 +983,9 @@ static CURLcode smtp_state_auth_digest_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -978,9 +994,8 @@ static CURLcode smtp_state_auth_digest_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 4; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Get the challenge message */ smtp_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_digest_md5_message(data, chlg64, conn->user, Loading Loading @@ -1075,6 +1090,7 @@ static CURLcode smtp_state_auth_ntlm_type2msg_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *type2msg = NULL; char *type3msg = NULL; size_t len = 0; Loading @@ -1085,11 +1101,12 @@ static CURLcode smtp_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { /* Get the type-2 message */ smtp_get_message(data->state.buffer, &type2msg); /* Create the type-3 message */ result = Curl_sasl_create_ntlm_type3_message(data, data->state.buffer + 4, conn->user, conn->passwd, &conn->ntlm, result = Curl_sasl_create_ntlm_type3_message(data, type2msg, conn->user, conn->passwd, &conn->ntlm, &type3msg, &len); /* Send the message */ Loading Loading
lib/imap.c +44 −27 Original line number Diff line number Diff line Loading @@ -371,6 +371,35 @@ static bool imap_endofresp(struct connectdata *conn, char *line, size_t len, return FALSE; /* Nothing for us */ } /*********************************************************************** * * imap_get_message() * * Gets the authentication message from the response buffer. */ static void imap_get_message(char *buffer, char** outptr) { size_t len = 0; char* message = NULL; /* Find the start of the message */ for(message = buffer + 2; *message == ' ' || *message == '\t'; message++) ; /* Find the end of the message */ for(len = strlen(message); len--;) if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' && message[len] != '\t') break; /* Terminate the message */ if(++len) { message[len] = '\0'; } *outptr = message; } /*********************************************************************** * * state() Loading Loading @@ -1076,9 +1105,9 @@ static CURLcode imap_state_auth_cram_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1087,21 +1116,8 @@ static CURLcode imap_state_auth_cram_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Terminate the challenge */ if(*chlg64 != '=') { for(len = strlen(chlg64); len--;) if(chlg64[len] != '\r' && chlg64[len] != '\n' && chlg64[len] != ' ' && chlg64[len] != '\t') break; if(++len) { chlg64[len] = '\0'; } } /* Get the challenge message */ imap_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_cram_md5_message(data, chlg64, conn->user, Loading Loading @@ -1129,9 +1145,9 @@ static CURLcode imap_state_auth_digest_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1140,9 +1156,8 @@ static CURLcode imap_state_auth_digest_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Get the challenge message */ imap_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_digest_md5_message(data, chlg64, conn->user, Loading Loading @@ -1236,8 +1251,9 @@ static CURLcode imap_state_auth_ntlm_type2msg_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; size_t len = 0; char *type2msg = NULL; char *type3msg = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1246,11 +1262,12 @@ static CURLcode imap_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { /* Get the challenge message */ imap_get_message(data->state.buffer, &type2msg); /* Create the type-3 message */ result = Curl_sasl_create_ntlm_type3_message(data, data->state.buffer + 2, conn->user, conn->passwd, &conn->ntlm, result = Curl_sasl_create_ntlm_type3_message(data, type2msg, conn->user, conn->passwd, &conn->ntlm, &type3msg, &len); /* Send the message */ Loading
lib/pop3.c +44 −27 Original line number Diff line number Diff line Loading @@ -350,6 +350,35 @@ static bool pop3_endofresp(struct connectdata *conn, char *line, size_t len, return FALSE; /* Nothing for us */ } /*********************************************************************** * * pop3_get_message() * * Gets the authentication message from the response buffer. */ static void pop3_get_message(char *buffer, char** outptr) { size_t len = 0; char* message = NULL; /* Find the start of the message */ for(message = buffer + 2; *message == ' ' || *message == '\t'; message++) ; /* Find the end of the message */ for(len = strlen(message); len--;) if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' && message[len] != '\t') break; /* Terminate the challenge */ if(++len) { message[len] = '\0'; } *outptr = message; } /*********************************************************************** * * state() Loading Loading @@ -934,9 +963,9 @@ static CURLcode pop3_state_auth_cram_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -945,21 +974,8 @@ static CURLcode pop3_state_auth_cram_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Terminate the challenge */ if(*chlg64 != '=') { for(len = strlen(chlg64); len--;) if(chlg64[len] != '\r' && chlg64[len] != '\n' && chlg64[len] != ' ' && chlg64[len] != '\t') break; if(++len) { chlg64[len] = '\0'; } } /* Get the challenge message */ pop3_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_cram_md5_message(data, chlg64, conn->user, Loading Loading @@ -987,9 +1003,9 @@ static CURLcode pop3_state_auth_digest_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -998,9 +1014,8 @@ static CURLcode pop3_state_auth_digest_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 2; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Get the challenge message */ pop3_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_digest_md5_message(data, chlg64, conn->user, Loading Loading @@ -1094,8 +1109,9 @@ static CURLcode pop3_state_auth_ntlm_type2msg_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; size_t len = 0; char *type2msg = NULL; char *type3msg = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -1104,11 +1120,12 @@ static CURLcode pop3_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { /* Get the type-2 message */ pop3_get_message(data->state.buffer, &type2msg); /* Create the type-3 message */ result = Curl_sasl_create_ntlm_type3_message(data, data->state.buffer + 2, conn->user, conn->passwd, &conn->ntlm, result = Curl_sasl_create_ntlm_type3_message(data, type2msg, conn->user, conn->passwd, &conn->ntlm, &type3msg, &len); /* Send the message */ Loading
lib/smtp.c +44 −27 Original line number Diff line number Diff line Loading @@ -219,7 +219,7 @@ static void smtp_to_smtps(struct connectdata *conn) /*********************************************************************** * * pop3_endofresp() * smtp_endofresp() * * Checks for an ending SMTP status code at the start of the given string, but * also detects various capabilities from the EHLO response including the Loading Loading @@ -307,6 +307,35 @@ static bool smtp_endofresp(struct connectdata *conn, char *line, size_t len, return result; } /*********************************************************************** * * smtp_get_message() * * Gets the authentication message from the response buffer. */ static void smtp_get_message(char *buffer, char** outptr) { size_t len = 0; char* message = NULL; /* Find the start of the message */ for(message = buffer + 4; *message == ' ' || *message == '\t'; message++) ; /* Find the end of the message */ for(len = strlen(message); len--;) if(message[len] != '\r' && message[len] != '\n' && message[len] != ' ' && message[len] != '\t') break; /* Terminate the challenge */ if(++len) { message[len] = '\0'; } *outptr = message; } /*********************************************************************** * * state() Loading Loading @@ -914,9 +943,9 @@ static CURLcode smtp_state_auth_cram_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -925,21 +954,8 @@ static CURLcode smtp_state_auth_cram_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 4; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Terminate the challenge */ if(*chlg64 != '=') { for(len = strlen(chlg64); len--;) if(chlg64[len] != '\r' && chlg64[len] != '\n' && chlg64[len] != ' ' && chlg64[len] != '\t') break; if(++len) { chlg64[len] = '\0'; } } /* Get the challenge message */ smtp_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_cram_md5_message(data, chlg64, conn->user, Loading Loading @@ -967,9 +983,9 @@ static CURLcode smtp_state_auth_digest_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *chlg64 = data->state.buffer; size_t len = 0; char *chlg64 = NULL; char *rplyb64 = NULL; size_t len = 0; (void)instate; /* no use for this yet */ Loading @@ -978,9 +994,8 @@ static CURLcode smtp_state_auth_digest_resp(struct connectdata *conn, return CURLE_LOGIN_DENIED; } /* Get the challenge */ for(chlg64 += 4; *chlg64 == ' ' || *chlg64 == '\t'; chlg64++) ; /* Get the challenge message */ smtp_get_message(data->state.buffer, &chlg64); /* Create the response message */ result = Curl_sasl_create_digest_md5_message(data, chlg64, conn->user, Loading Loading @@ -1075,6 +1090,7 @@ static CURLcode smtp_state_auth_ntlm_type2msg_resp(struct connectdata *conn, { CURLcode result = CURLE_OK; struct SessionHandle *data = conn->data; char *type2msg = NULL; char *type3msg = NULL; size_t len = 0; Loading @@ -1085,11 +1101,12 @@ static CURLcode smtp_state_auth_ntlm_type2msg_resp(struct connectdata *conn, result = CURLE_LOGIN_DENIED; } else { /* Get the type-2 message */ smtp_get_message(data->state.buffer, &type2msg); /* Create the type-3 message */ result = Curl_sasl_create_ntlm_type3_message(data, data->state.buffer + 4, conn->user, conn->passwd, &conn->ntlm, result = Curl_sasl_create_ntlm_type3_message(data, type2msg, conn->user, conn->passwd, &conn->ntlm, &type3msg, &len); /* Send the message */ Loading