Skip to content
Snippets Groups Projects
Commit 19efe3fe authored by rswindell's avatar rswindell
Browse files

Log warnings upon all SMTP AUTH failures (e.g bad/missing arguments).

parent 45d7714f
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
* @format.tab-size 4 (Plain Text/Source Code File Header) *
* @format.use-tabs true (see http://www.synchro.net/ptsc_hdr.html) *
* *
* Copyright 2014 Rob Swindell - http://www.synchro.net/copyright.html *
* Copyright Rob Swindell - http://www.synchro.net/copyright.html *
* *
* This program is free software; you can redistribute it and/or *
* modify it under the terms of the GNU General Public License *
......@@ -3369,23 +3369,27 @@ static void smtp_thread(void* arg)
if(auth_login) {
sockprintf(socket,"334 VXNlcm5hbWU6"); /* Base64-encoded "Username:" */
if((rd=sockreadline(socket, buf, sizeof(buf)))<1) {
lprintf(LOG_WARNING,"%04d !SMTP missing AUTH LOGIN username argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
if(startup->options&MAIL_OPT_DEBUG_RX_RSP)
lprintf(LOG_DEBUG,"%04d RX: %s",socket,buf);
if(b64_decode(user_name,sizeof(user_name),buf,rd)<1) {
lprintf(LOG_WARNING,"%04d !SMTP bad AUTH LOGIN username argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
sockprintf(socket,"334 UGFzc3dvcmQ6"); /* Base64-encoded "Password:" */
if((rd=sockreadline(socket, buf, sizeof(buf)))<1) {
lprintf(LOG_WARNING,"%04d !SMTP missing AUTH LOGIN password argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
if(startup->options&MAIL_OPT_DEBUG_RX_RSP)
lprintf(LOG_DEBUG,"%04d RX: %s",socket,buf);
if(b64_decode(user_pass,sizeof(user_pass),buf,rd)<1) {
lprintf(LOG_WARNING,"%04d !SMTP bad AUTH LOGIN password argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
......@@ -3393,11 +3397,13 @@ static void smtp_thread(void* arg)
p=buf+10;
SKIP_WHITESPACE(p);
if(*p==0) {
lprintf(LOG_WARNING,"%04d !SMTP missing AUTH PLAIN argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
ZERO_VAR(tmp);
if(b64_decode(tmp,sizeof(tmp),p,strlen(p))<1) {
lprintf(LOG_WARNING,"%04d !SMTP bad AUTH PLAIN argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
......@@ -3405,6 +3411,7 @@ static void smtp_thread(void* arg)
while(*p) p++; /* skip username */
p++; /* skip NULL */
if(*p==0) {
lprintf(LOG_WARNING,"%04d !SMTP missing AUTH PLAIN user-id argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
......@@ -3412,6 +3419,7 @@ static void smtp_thread(void* arg)
while(*p) p++; /* skip user-id */
p++; /* skip NULL */
if(*p==0) {
lprintf(LOG_WARNING,"%04d !SMTP missing AUTH PLAIN password argument", socket);
sockprintf(socket,badarg_rsp);
continue;
}
......@@ -3473,6 +3481,7 @@ static void smtp_thread(void* arg)
b64_encode(str,sizeof(str),challenge,0);
sockprintf(socket,"334 %s",str);
if((rd=sockreadline(socket, buf, sizeof(buf)))<1) {
lprintf(LOG_WARNING,"%04d !SMTP missing AUTH CRAM-MD5 response", socket);
sockprintf(socket,badarg_rsp);
continue;
}
......@@ -3480,6 +3489,7 @@ static void smtp_thread(void* arg)
lprintf(LOG_DEBUG,"%04d RX: %s",socket,buf);
if(b64_decode(response,sizeof(response),buf,rd)<1) {
lprintf(LOG_WARNING,"%04d !SMTP bad AUTH CRAM-MD5 response", socket);
sockprintf(socket,badarg_rsp);
continue;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment