Commits (1)
  • Rob Swindell's avatar
    Fix segfault after batch-upload when no "uploads" dir specified · 7dc1bc79
    Rob Swindell authored
    When there's no "uploads" directory configured by the sysop, cfg.upload_dir will be set to INVALID_DIR, which cannot be used as an index into cfg.dir[] to determine if the time used for uploading the files should be "given back" to the user.
    In v3.18, we used the first file in the upload queue, if there was one, else fell back to the "uploads" dir (which had to have been defined if there were no files in the queue). So this illegal array indexing was a regression in v3.19.
    Reported by Zoltán Gábor on Facebook
...@@ -194,7 +194,7 @@ void sbbs_t::batchmenu() ...@@ -194,7 +194,7 @@ void sbbs_t::batchmenu()
start=time(NULL); start=time(NULL);
protocol(cfg.prot[xfrprot],XFER_BATCH_UPLOAD,str,nulstr,true); protocol(cfg.prot[xfrprot],XFER_BATCH_UPLOAD,str,nulstr,true);
end=time(NULL); end=time(NULL);
if(!(cfg.dir[xfrdir]->misc&DIR_ULTIME)) if(xfrdir != INVALID_DIR && !(cfg.dir[xfrdir]->misc&DIR_ULTIME))
starttime+=end-start; starttime+=end-start;
} }
batch_upload(); batch_upload();