diff --git a/src/sbbs3/readmail.cpp b/src/sbbs3/readmail.cpp index 598aa41827d430cde601c592faaa40e9e657a397..e98bbba64ebe7ea44eef0056120b11187c9cf0fe 100644 --- a/src/sbbs3/readmail.cpp +++ b/src/sbbs3/readmail.cpp @@ -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 2015 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 * @@ -44,6 +44,7 @@ void sbbs_t::readmail(uint usernumber, int which) { char str[256],str2[256],str3[256],done=0,domsg=1 ,*p,*tp,*sp,ch; + char path[MAX_PATH+1]; char tmp[512]; int i; uint32_t u,v; @@ -245,8 +246,7 @@ void sbbs_t::readmail(uint usernumber, int which) if(msg.hdr.auxattr&MSG_FILEATTACH) { /* Attached file */ smb_getmsgidx(&smb,&msg); - strcpy(str,msg.subj); /* filenames in title */ -// strupr(str); + SAFECOPY(str, msg.subj); /* filenames (multiple?) in title */ tp=str; while(online) { p=strchr(tp,' '); @@ -255,11 +255,11 @@ void sbbs_t::readmail(uint usernumber, int which) if(!sp) sp=strrchr(tp,'\\'); if(sp) tp=sp+1; padfname(tp,fd.name); - sprintf(str2,"%sfile/%04u.in/%s" /* str2 is path/fname */ + SAFEPRINTF3(path,"%sfile/%04u.in/%s" /* path is path/fname */ ,cfg.data_dir,msg.idx.to,tp); - length=(long)flength(str2); + length=(long)flength(path); if(length<1) - bputs(text[FileNotFound]); + bprintf(text[FileDoesNotExist], tp); else if(!(useron.exempt&FLAG('T')) && cur_cps && !SYSOP && length/(long)cur_cps>(time_t)timeleft) bputs(text[NotEnoughTimeToDl]); @@ -283,10 +283,10 @@ void sbbs_t::readmail(uint usernumber, int which) && chk_ar(cfg.prot[i]->ar,&useron,&client)) break; if(i<cfg.total_prots) { - error=protocol(cfg.prot[i],XFER_DOWNLOAD,str2,nulstr,false); + error=protocol(cfg.prot[i],XFER_DOWNLOAD,path,nulstr,false); if(checkprotresult(cfg.prot[i],error,&fd)) { if(which==MAIL_YOUR) - remove(str2); + remove(path); logon_dlb+=length; /* Update stats */ logon_dls++; useron.dls=(ushort)adjustuserrec(&cfg,useron.number