From fd0dec627448582ac88e520ddf5bd6f313730576 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Mon, 26 Apr 2021 22:32:43 -0700 Subject: [PATCH] Fix error when moving files e.g. file.cpp line 239 (removefile) removing "filename.zip" access=-203 info=smb_freemsgdat reading allocation record at offset 1108 Also, if there is an error removing the original file from the filebase, don't proceed to move the actual file (and log a successful move). --- src/sbbs3/file.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp index 2b7c87aedb..e6b36dc38d 100644 --- a/src/sbbs3/file.cpp +++ b/src/sbbs3/file.cpp @@ -244,6 +244,7 @@ bool sbbs_t::removefile(smb_t* smb, file_t* f) /****************************************************************************/ bool sbbs_t::movefile(smb_t* smb, file_t* f, int newdir) { + file_t orgfile = *f; if(findfile(&cfg, newdir, f->name, NULL)) { bprintf(text[FileAlreadyThere], f->name); return false; @@ -251,7 +252,8 @@ bool sbbs_t::movefile(smb_t* smb, file_t* f, int newdir) if(!addfile(&cfg, newdir, f, f->extdesc, /* client: */NULL)) return false; - removefile(smb, f); + if(!removefile(smb, &orgfile)) + return false; bprintf(text[MovedFile],f->name ,cfg.lib[cfg.dir[newdir]->lib]->sname,cfg.dir[newdir]->sname); char str[MAX_PATH+1]; -- GitLab