diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp index 2b7c87aedbf79efd9c8c447d66e173db959ef901..e6b36dc38d973c78c2d042acb9cece56b40d5bb9 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];