diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index e12fdee0194f683b957d92fd783ae5482827431f..fca2e3e9d0f0658e332875b85f8f140201d6a2c4 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -840,7 +840,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, continue; tp++; if(*tp) { - sprintf(aliasfile,"%s%s",scfg.dir[dir]->path,tp); + SAFEPRINTF2(aliasfile,"%s%s",scfg.dir[dir]->path,tp); np=aliasfile; } else @@ -853,7 +853,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, if(alias_dir) { if(!chk_ar(&scfg,scfg.dir[dir]->ar,user)) continue; - sprintf(vpath,"/%s/%s",p,startup->html_index_file); + SAFEPRINTF2(vpath,"/%s/%s",p,startup->html_index_file); } else SAFECOPY(vpath,p); js_add_file(js_cx @@ -879,7 +879,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, /* QWK Packet */ if(startup->options&FTP_OPT_ALLOW_QWK /* && fexist(qwkfile) */) { sprintf(str,"%s.qwk",scfg.sys_id); - sprintf(vpath,"/%s",str); + SAFEPRINTF(vpath,"/%s",str); js_add_file(js_cx ,file_array ,str /* filename */ @@ -901,7 +901,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, for(i=0;i<scfg.total_libs;i++) { if(!chk_ar(&scfg,scfg.lib[i]->ar,user)) continue; - sprintf(vpath,"/%s/%s",scfg.lib[i]->sname,startup->html_index_file); + SAFEPRINTF2(vpath,"/%s/%s",scfg.lib[i]->sname,startup->html_index_file); js_add_file(js_cx ,dir_array ,scfg.lib[i]->sname /* filename */ @@ -920,7 +920,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, if(/* i!=scfg.sysop_dir && i!=scfg.upload_dir && */ !chk_ar(&scfg,scfg.dir[i]->ar,user)) continue; - sprintf(vpath,"/%s/%s/%s" + SAFEPRINTF3(vpath,"/%s/%s/%s" ,scfg.lib[scfg.dir[i]->lib]->sname ,scfg.dir[i]->code_suffix ,startup->html_index_file); @@ -938,7 +938,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, } } else if(chk_ar(&scfg,scfg.dir[dir]->ar,user)){ - sprintf(path,"%s*",scfg.dir[dir]->path); + SAFEPRINTF(path,"%s*",scfg.dir[dir]->path); glob(path,0,NULL,&g); for(i=0;i<(int)g.gl_pathc;i++) { if(isdir(g.gl_pathv[i])) @@ -959,7 +959,7 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent, /* Remove Ctrl-A Codes and Ex-ASCII code */ remove_ctrl_a(extdesc,NULL); } - sprintf(vpath,"/%s/%s/%s" + SAFEPRINTF3(vpath,"/%s/%s/%s" ,scfg.lib[scfg.dir[dir]->lib]->sname ,scfg.dir[dir]->code_suffix ,getfname(g.gl_pathv[i])); @@ -1558,11 +1558,11 @@ static void send_thread(void* arg) addr_len = sizeof(addr); if(uploader.level>=SYSOP_LEVEL && getpeername(xfer.ctrl_sock,(struct sockaddr *)&addr,&addr_len)==0) - sprintf(username,"%s [%s]",xfer.user->alias,inet_ntoa(addr.sin_addr)); + SAFEPRINTF2(username,"%s [%s]",xfer.user->alias,inet_ntoa(addr.sin_addr)); else SAFECOPY(username,xfer.user->alias); /* Inform uploader of downloaded file */ - sprintf(str,text[DownloadUserMsg] + safe_snprintf(str,sizeof(str),text[DownloadUserMsg] ,getfname(xfer.filename) ,xfer.filepos ? "partially FTP-" : "FTP-" ,username,tmp); @@ -2654,7 +2654,7 @@ static void ctrl_thread(void* arg) continue; } - sprintf(sys_pass,"%s:%s",user.pass,scfg.sys_pass); + SAFEPRINTF2(sys_pass,"%s:%s",user.pass,scfg.sys_pass); if(!user.pass[0]) { /* Guest/Anonymous */ if(trashcan(&scfg,password,"email")) { lprintf(LOG_NOTICE,"%04d !BLOCKED e-mail address: %s",sock,password); @@ -3036,7 +3036,7 @@ static void ctrl_thread(void* arg) p=cmd+4; while(*p && *p<=' ') p++; - sprintf(path,"%s%s",local_dir, *p ? p : "*"); + SAFEPRINTF2(path,"%s%s",local_dir, *p ? p : "*"); lprintf(LOG_INFO,"%04d %s listing: %s", sock, user.alias, path); sockprintf(sock, "150 Directory of %s%s", local_dir, p); @@ -3100,9 +3100,9 @@ static void ctrl_thread(void* arg) if(p[1]==':' || !strncmp(p,"\\\\",2)) SAFECOPY(path,p); else if(*p=='/' || *p=='\\') - sprintf(path,"%s%s",root_dir(local_dir),p); + SAFEPRINTF2(path,"%s%s",root_dir(local_dir),p); else { - sprintf(fname,"%s%s",local_dir,p); + SAFEPRINTF2(fname,"%s%s",local_dir,p); FULLPATH(path,fname,sizeof(path)); } @@ -3118,7 +3118,7 @@ static void ctrl_thread(void* arg) } /* Local CWD */ if(!stricmp(cmd,"CDUP") || !stricmp(cmd,"XCUP")) { - sprintf(path,"%s..",local_dir); + SAFEPRINTF(path,"%s..",local_dir); if(FULLPATH(local_dir,path,sizeof(local_dir))==NULL) sockprintf(sock,"550 Directory does not exist."); else @@ -3139,9 +3139,9 @@ static void ctrl_thread(void* arg) p=cmd+4; while(*p && *p<=' ') p++; if(*p=='/') /* absolute */ - sprintf(fname,"%s%s",root_dir(local_dir),p+1); + SAFEPRINTF2(fname,"%s%s",root_dir(local_dir),p+1); else /* relative */ - sprintf(fname,"%s%s",local_dir,p); + SAFEPRINTF2(fname,"%s%s",local_dir,p); if((i=MKDIR(fname))==0) { sockprintf(sock,"257 \"%s\" directory created",fname); @@ -3158,9 +3158,9 @@ static void ctrl_thread(void* arg) p=cmd+4; while(*p && *p<=' ') p++; if(*p=='/') /* absolute */ - sprintf(fname,"%s%s",root_dir(local_dir),p+1); + SAFEPRINTF2(fname,"%s%s",root_dir(local_dir),p+1); else /* relative */ - sprintf(fname,"%s%s",local_dir,p); + SAFEPRINTF2(fname,"%s%s",local_dir,p); if((i=rmdir(fname))==0) { sockprintf(sock,"250 \"%s\" directory removed",fname); @@ -3177,9 +3177,9 @@ static void ctrl_thread(void* arg) p=cmd+5; while(*p && *p<=' ') p++; if(*p=='/') /* absolute */ - sprintf(ren_from,"%s%s",root_dir(local_dir),p+1); + SAFEPRINTF2(ren_from,"%s%s",root_dir(local_dir),p+1); else /* relative */ - sprintf(ren_from,"%s%s",local_dir,p); + SAFEPRINTF2(ren_from,"%s%s",local_dir,p); if(!fexist(ren_from)) { sockprintf(sock,"550 File not found: %s",ren_from); lprintf(LOG_WARNING,"%04d !%s attempted to rename %s (not found)" @@ -3193,9 +3193,9 @@ static void ctrl_thread(void* arg) p=cmd+5; while(*p && *p<=' ') p++; if(*p=='/') /* absolute */ - sprintf(fname,"%s%s",root_dir(local_dir),p+1); + SAFEPRINTF2(fname,"%s%s",root_dir(local_dir),p+1); else /* relative */ - sprintf(fname,"%s%s",local_dir,p); + SAFEPRINTF2(fname,"%s%s",local_dir,p); if((i=rename(ren_from, fname))==0) { sockprintf(sock,"250 \"%s\" renamed to \"%s\"",ren_from,fname); @@ -3220,9 +3220,9 @@ static void ctrl_thread(void* arg) if(p[1]==':') /* drive specified */ SAFECOPY(fname,p); else if(*p=='/') /* absolute, current drive */ - sprintf(fname,"%s%s",root_dir(local_dir),p+1); + SAFEPRINTF2(fname,"%s%s",root_dir(local_dir),p+1); else /* relative */ - sprintf(fname,"%s%s",local_dir,p); + SAFEPRINTF2(fname,"%s%s",local_dir,p); if(!fexist(fname)) { lprintf(LOG_WARNING,"%04d !%s file not found: %s",sock,user.alias,fname); sockprintf(sock,"550 File not found: %s",fname); @@ -3273,9 +3273,9 @@ static void ctrl_thread(void* arg) if(p[1]==':') /* drive specified */ SAFECOPY(fname,p); else if(*p=='/') /* absolute, current drive */ - sprintf(fname,"%s%s",root_dir(local_dir),p+1); + SAFEPRINTF2(fname,"%s%s",root_dir(local_dir),p+1); else /* relative */ - sprintf(fname,"%s%s",local_dir,p); + SAFEPRINTF2(fname,"%s%s",local_dir,p); lprintf(LOG_INFO,"%04d %s uploading: %s in %s mode", sock,user.alias,fname ,pasv_sock==INVALID_SOCKET ? "active":"passive"); @@ -3420,7 +3420,7 @@ static void ctrl_thread(void* arg) continue; tp++; if(*tp) { - sprintf(aliasfile,"%s%s",scfg.dir[dir]->path,tp); + SAFEPRINTF2(aliasfile,"%s%s",scfg.dir[dir]->path,tp); np=aliasfile; } else @@ -3499,7 +3499,7 @@ static void ctrl_thread(void* arg) lprintf(LOG_INFO,"%04d %s listing: %s/%s directory" ,sock,user.alias,scfg.lib[lib]->sname,scfg.dir[dir]->code_suffix); - sprintf(path,"%s%s",scfg.dir[dir]->path,*p ? p : "*"); + SAFEPRINTF2(path,"%s%s",scfg.dir[dir]->path,*p ? p : "*"); glob(path,0,NULL,&g); for(i=0;i<(int)g.gl_pathc;i++) { if(isdir(g.gl_pathv[i])) @@ -3922,7 +3922,7 @@ static void ctrl_thread(void* arg) filepos=0; continue; } - sprintf(fname,"%s%s",scfg.dir[dir]->path,p); + SAFEPRINTF2(fname,"%s%s",scfg.dir[dir]->path,p); #ifdef _WIN32 GetShortPathName(fname, str, sizeof(str)); #else @@ -4135,7 +4135,7 @@ static void ctrl_thread(void* arg) #endif continue; } - sprintf(fname,"%s%s",scfg.dir[dir]->path,p); + SAFEPRINTF2(fname,"%s%s",scfg.dir[dir]->path,p); if((!append && filepos==0 && fexist(fname)) || (startup->options&FTP_OPT_INDEX_FILE && !stricmp(p,startup->index_file_name))