From 41baf3aebb18be48705aecce105938ba4ba30a7b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Sat, 16 Mar 2002 00:22:01 +0000
Subject: [PATCH] putnodedat() verifies valid file descriptor argument and
 always closes file.

---
 src/sbbs3/userdat.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index 94aa8d3052..00e03cb7fa 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -688,8 +688,10 @@ int DLLCALL putnodedat(scfg_t* cfg, uint number, node_t* node, int file)
 	int		wrerr;
 	int		attempts;
 
-	if(!number || number>cfg->sys_nodes) 
+	if(!number || number>cfg->sys_nodes || file<0) {
+		close(file);
 		return(-1);
+	}
 
 	number--;	/* make zero based */
 	for(attempts=0;attempts<10;attempts++) {
-- 
GitLab