From 579119c90ae99db91db4b97fec4e335497a08bf2 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 23 Jan 2020 02:25:22 +0000
Subject: [PATCH] Fix bug introduced in rev 1.236 (April-3-2014): Areafix
 requests to unlink a node from an area would corrupt the list of linked
 nodes: the *last* listed node would always be removed. If this was not the
 node that submitted the areafix request, then 2 nodes would be removed from
 the list of linked-nodes for an echo. To simplify this, we're just going to
 not write the removed node back to the area file, but leave it in the
 in-memory list. So technically, the node won't be unlinked until the next run
 of SBBSecho when the area file is re-parsed. If that's a problem, we can
 always add run-time removal from the in-memory list later. Reported by
 Alterego (ALTERANT).

---
 src/sbbs3/sbbsecho.c | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/src/sbbs3/sbbsecho.c b/src/sbbs3/sbbsecho.c
index f84b3281f1..87c7c7d793 100644
--- a/src/sbbs3/sbbsecho.c
+++ b/src/sbbs3/sbbsecho.c
@@ -1699,16 +1699,6 @@ void alter_areas(str_list_t add_area, str_list_t del_area, fidoaddr_t addr, cons
 						}
 						lprintf(LOG_INFO,"AreaFix (for %s) Unlinking area: %s", smb_faddrtoa(&addr,NULL), echotag);
 
-						/* Added 12/4/95 to remove link from connected link */
-
-						for(k=u;k<cfg.area[u].links-1;k++)
-							memcpy(&cfg.area[u].link[k],&cfg.area[u].link[k+1]
-								,sizeof(fidoaddr_t));
-						--cfg.area[u].links;
-						if(cfg.area[u].links==0) {
-							FREE_AND_NULL(cfg.area[u].link);
-						}
-
 						fprintf(afileout,"%-*s %-*s "
 							,LEN_EXTCODE, code
 							,FIDO_AREATAG_LEN, echotag);
-- 
GitLab