diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c index c151319ce2c266f0b67916e376e7a0bf34f1ab75..a5f5a003403511ce2cc8e28acd38eb84b7a0cace 100644 --- a/src/sbbs3/mailsrvr.c +++ b/src/sbbs3/mailsrvr.c @@ -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 2003 Rob Swindell - http://www.synchro.net/copyright.html * + * Copyright 2004 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 * @@ -438,7 +438,7 @@ static ulong sockmsgtxt(SOCKET socket, smbmsg_t* msg, char* msgtxt, ulong maxlin if(msg->from_net.type==NET_INTERNET && msg->from_net.addr!=NULL) SAFECOPY(fromaddr,(char*)msg->from_net.addr); else if(msg->from_net.type==NET_QWK && msg->from_net.addr!=NULL) - sprintf(fromaddr,"%s!%s" + SAFEPRINTF2(fromaddr,"%s!%s" ,(char*)msg->from_net.addr ,usermailaddr(&scfg,fromhost,msg->from)); else @@ -720,7 +720,7 @@ static void pop3_thread(void* arg) srand(time(NULL)); /* seed random number generator */ rand(); /* throw-away first result */ - sprintf(challenge,"<%x%x%lx%lx@%s>" + sprintf(challenge,"<%x%x%lx%lx@%.128s>" ,rand(),socket,(ulong)time(NULL),clock(),startup->host_name); sockprintf(socket,"+OK Synchronet POP3 Server %s-%s Ready %s" @@ -1187,7 +1187,7 @@ static ulong rblchk(SOCKET sock, DWORD mail_addr_n, const char* rbl_addr) struct in_addr dnsbl_result; mail_addr=ntohl(mail_addr_n); - sprintf(name,"%ld.%ld.%ld.%ld.%s" + sprintf(name,"%ld.%ld.%ld.%ld.%.128s" ,mail_addr&0xff ,(mail_addr>>8)&0xff ,(mail_addr>>16)&0xff @@ -1270,7 +1270,7 @@ static BOOL chk_email_addr(SOCKET socket, char* p, char* host_name, char* host_i lprintf(LOG_NOTICE,"%04d !SMTP BLOCKED SOURCE: %s" ,socket, addr); - sprintf(tmp,"Blocked source e-mail address: %s", addr); + SAFEPRINTF(tmp,"Blocked source e-mail address: %s", addr); spamlog(&scfg, "SMTP", "REFUSED", tmp, host_name, host_ip, to, from); sockprintf(socket, "554 Sender not allowed."); @@ -1401,12 +1401,12 @@ js_ErrorReporter(JSContext *cx, const char *message, JSErrorReport *report) } if(report->filename) - sprintf(file," %s",report->filename); + SAFEPRINTF(file," %s",report->filename); else file[0]=0; if(report->lineno) - sprintf(line," line %u",report->lineno); + SAFEPRINTF(line," line %u",report->lineno); else line[0]=0; @@ -2249,7 +2249,7 @@ static void smtp_thread(void* arg) if(msg.subj!=NULL && trashcan(&scfg,msg.subj,"subject")) { lprintf(LOG_WARNING,"%04d !SMTP BLOCKED SUBJECT (%s) from: %s" ,socket, msg.subj, reverse_path); - sprintf(tmp,"Blocked subject (%s) from: %s" + SAFEPRINTF2(tmp,"Blocked subject (%s) from: %s" ,msg.subj, reverse_path); spamlog(&scfg, "SMTP", "REFUSED" ,tmp, host_name, host_ip, rcpt_addr, reverse_path); @@ -3268,7 +3268,7 @@ BOOL bounce(smb_t* smb, smbmsg_t* msg, char* err, BOOL immediate) newmsg.idx.from=0; newmsg.hdr.delivery_attempts=0; - sprintf(str,"Delivery failure: %.100s",newmsg.subj); + SAFEPRINTF(str,"Delivery failure: %s",newmsg.subj); smb_hfield_str(&newmsg, SUBJECT, str); smb_hfield_str(&newmsg, RECIPIENT, newmsg.from); if(newmsg.idx.to) { @@ -3292,7 +3292,7 @@ BOOL bounce(smb_t* smb, smbmsg_t* msg, char* err, BOOL immediate) sprintf(str,"%s reporting delivery failure of message %s" ,startup->host_name, attempts); smb_hfield_str(&newmsg, SMB_COMMENT, str); - sprintf(str,"from %s to %s\r\n" + SAFEPRINTF2(str,"from %s to %s\r\n" ,msg->reverse_path==NULL ? msg->from : msg->reverse_path ,(char*)msg->to_net.addr); smb_hfield_str(&newmsg, SMB_COMMENT, str); @@ -3348,7 +3348,7 @@ static void sendmail_thread(void* arg) char to[128]; char mx[128]; char mx2[128]; - char err[128]; + char err[1024]; char buf[512]; char toaddr[256]; char fromaddr[256]; @@ -3612,14 +3612,14 @@ static void sendmail_thread(void* arg) /* HELO */ if(!sockgetrsp(sock,"220",buf,sizeof(buf))) { remove_msg_intransit(&smb,&msg); - sprintf(err,badrsp_err,server,buf,"220"); + SAFEPRINTF3(err,badrsp_err,server,buf,"220"); bounce(&smb,&msg,err,buf[0]=='5'); continue; } sockprintf(sock,"HELO %s",startup->host_name); if(!sockgetrsp(sock,"250", buf, sizeof(buf))) { remove_msg_intransit(&smb,&msg); - sprintf(err,badrsp_err,server,buf,"250"); + SAFEPRINTF3(err,badrsp_err,server,buf,"250"); bounce(&smb,&msg,err,buf[0]=='5'); continue; } @@ -3635,7 +3635,7 @@ static void sendmail_thread(void* arg) sockprintf(sock,"MAIL FROM: <%s>",fromaddr); if(!sockgetrsp(sock,"250", buf, sizeof(buf))) { remove_msg_intransit(&smb,&msg); - sprintf(err,badrsp_err,server,buf,"250"); + SAFEPRINTF3(err,badrsp_err,server,buf,"250"); bounce(&smb,&msg,err,buf[0]=='5'); continue; } @@ -3649,7 +3649,7 @@ static void sendmail_thread(void* arg) sockprintf(sock,"RCPT TO: <%s>", toaddr); if(!sockgetrsp(sock,"25", buf, sizeof(buf))) { remove_msg_intransit(&smb,&msg); - sprintf(err,badrsp_err,server,buf,"25*"); + SAFEPRINTF3(err,badrsp_err,server,buf,"25*"); bounce(&smb,&msg,err,buf[0]=='5'); continue; } @@ -3657,7 +3657,7 @@ static void sendmail_thread(void* arg) sockprintf(sock,"DATA"); if(!sockgetrsp(sock,"354", buf, sizeof(buf))) { remove_msg_intransit(&smb,&msg); - sprintf(err,badrsp_err,server,buf,"354"); + SAFEPRINTF3(err,badrsp_err,server,buf,"354"); bounce(&smb,&msg,err,buf[0]=='5'); continue; } @@ -3666,7 +3666,7 @@ static void sendmail_thread(void* arg) lines=sockmsgtxt(sock,&msg,msgtxt,-1); if(!sockgetrsp(sock,"250", buf, sizeof(buf))) { remove_msg_intransit(&smb,&msg); - sprintf(err,badrsp_err,server,buf,"250"); + SAFEPRINTF3(err,badrsp_err,server,buf,"250"); bounce(&smb,&msg,err,buf[0]=='5'); continue; }