From aed6a08cd9e185928a3776988dccfb4799696434 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 3 Nov 2001 17:42:45 +0000
Subject: [PATCH] Fixed apparently, a really old bug where you could 'R'emove
 files from the temp dir. Use checkfname() to make sure the user doesn't
 delete any files in other dirs.

---
 src/sbbs3/tmp_xfer.cpp | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/sbbs3/tmp_xfer.cpp b/src/sbbs3/tmp_xfer.cpp
index 17aad3a641..45123831db 100644
--- a/src/sbbs3/tmp_xfer.cpp
+++ b/src/sbbs3/tmp_xfer.cpp
@@ -220,8 +220,10 @@ void sbbs_t::temp_xfer()
 				for(i=0;i<g.gl_pathc && !msgabort();i++) {
 					if(isdir(g.gl_pathv[i]))
 						continue;
-					bprintf("%s %15s\r\n",padfname(getfname(g.gl_pathv[i]),str)
-						,ultoac(flength(g.gl_pathv[i]),tmp));
+					t=fdate(g.gl_pathv[i]);
+					bprintf("%-15s %15s %s\r\n",getfname(g.gl_pathv[i])
+						,ultoac(flength(g.gl_pathv[i]),tmp)
+						,timestr(&t));
 					files++;
 					bytes+=flength(g.gl_pathv[i]);
 				}
@@ -240,10 +242,9 @@ void sbbs_t::temp_xfer()
 				sys_status&=~SS_ABORT;
 				break;
 			case 'R':   /* Remove files from dir */
-				if(!getfilespec(str))
+				if(!getfilespec(str) || !checkfname(str))
 					break;
-				// padfname(str,tmp);  Removed 04/14/96
-				bprintf(text[NFilesRemoved],delfiles(cfg.temp_dir,tmp));
+				bprintf(text[NFilesRemoved],delfiles(cfg.temp_dir,str));
 				break;
 			case 'V':   /* view files in dir */
 				bputs(text[FileSpec]);
-- 
GitLab