diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index 60d03ac3126807c9ecf5dc5481335fd6520c4656..e5006b3d1667272b0d158af58ebcef252f9971a7 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -4329,6 +4329,13 @@ void node_thread(void* arg)
 				sbbs->clearvars(&sbbs->main_csi);
 
 				sbbs->main_csi.length=(long)filelength(file);
+				if(sbbs->main_csi.length < 1) {
+					close(file);
+					sbbs->errormsg(WHERE,ERR_LEN, str, sbbs->main_csi.length);
+					sbbs->hangup();
+					break;
+				}
+
 				if((sbbs->main_csi.cs=(uchar *)malloc(sbbs->main_csi.length))==NULL) {
 					close(file);
 					sbbs->errormsg(WHERE,ERR_ALLOC,str,sbbs->main_csi.length);