From 28cfca28c8a2c89f2278f24d226834283af8bb6a Mon Sep 17 00:00:00 2001
From: Rob Swindell <rob@synchro.net>
Date: Wed, 11 Jan 2023 22:26:44 -0800
Subject: [PATCH] Fix sizeof(cursub / curdir) issue as these user_t fields were
 increased in v3.20

... but the old user.dat fields would still just be 16 chars in size.

Also a strcpy -> SAFECOPY conversion for user tmpext.
---
 src/sbbs3/upgrade_to_v320.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/upgrade_to_v320.c b/src/sbbs3/upgrade_to_v320.c
index 0484d2d2c3..43e2767c70 100644
--- a/src/sbbs3/upgrade_to_v320.c
+++ b/src/sbbs3/upgrade_to_v320.c
@@ -346,8 +346,8 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
 
 	getrec(userdat,U_LEECH,2,str);
 	user->leech=(uchar)ahtoul(str);
-	getrec(userdat,U_CURSUB,sizeof(user->cursub)-1,user->cursub);
-	getrec(userdat,U_CURDIR,sizeof(user->curdir)-1,user->curdir);
+	getrec(userdat,U_CURSUB,16,user->cursub);
+	getrec(userdat,U_CURDIR,16,user->curdir);
 	getrec(userdat,U_CURXTRN,8,user->curxtrn);
 
 	getrec(userdat,U_FREECDT,LEN31x_CDT,str);
@@ -383,7 +383,7 @@ static int v31x_parseuserdat(scfg_t* cfg, char *userdat, user_t *user)
 
 	getrec(userdat,U_TMPEXT,3,user->tmpext);
 	if((!user->tmpext[0] || !strcmp(user->tmpext,"0")) && cfg->total_fcomps)
-		strcpy(user->tmpext,cfg->fcomp[0]->ext);  /* For v1x to v2x conversion */
+		SAFECOPY(user->tmpext,cfg->fcomp[0]->ext);  /* For v1x to v2x conversion */
 
 	getrec(userdat,U_CHAT,8,str);
 	user->chat=ahtoul(str);
-- 
GitLab