diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp index a41658f88301bacc2dc8fc4ba37e0fcfbb2c863b..72de5d29565e282eb9dde3f944bbb91f4cd43842 100644 --- a/src/sbbs3/exec.cpp +++ b/src/sbbs3/exec.cpp @@ -790,7 +790,12 @@ long sbbs_t::exec_bin(const char *cmdline, csi_t *csi, const char* startup_dir) memcpy(&bin,csi,sizeof(csi_t)); clearvars(&bin); - bin.length=(uint32_t)filelength(file); + bin.length = filelength(file); + if(bin.length < 1) { + close(file); + errormsg(WHERE, ERR_LEN, str, bin.length); + return -1; + } if((bin.cs=(uchar *)malloc(bin.length))==NULL) { close(file); errormsg(WHERE,ERR_ALLOC,str,bin.length);