From 0aac66f7caececa43d761fafac76d5ce980d2416 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 12 Mar 2002 17:32:23 +0000
Subject: [PATCH] Added code to putusername() to automatically fix a corrupted
 name.dat file.

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

diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c
index d405a97fec..a873df7934 100644
--- a/src/sbbs3/userdat.c
+++ b/src/sbbs3/userdat.c
@@ -523,6 +523,7 @@ int DLLCALL putusername(scfg_t* cfg, int number, char *name)
 	char str[256];
 	int file;
 	long length;
+	uint total_users;
 
 	if (number<1) 
 		return(-1);
@@ -531,6 +532,12 @@ int DLLCALL putusername(scfg_t* cfg, int number, char *name)
 	if((file=nopen(str,O_RDWR|O_CREAT))==-1) 
 		return(-2); 
 	length=filelength(file);
+
+	/* Truncate corrupted name.dat */
+	total_users=lastuser(cfg);
+	if((uint)(length/(LEN_ALIAS+2))>total_users)
+		chsize(file,total_users*(LEN_ALIAS+2));
+
 	if(length && length%(LEN_ALIAS+2)) {
 		close(file);
 		return(-3); 
-- 
GitLab