From 928eab87d21c00548202343a2bb9106d17037b74 Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sun, 13 Sep 2020 00:14:50 -0700 Subject: [PATCH] Strip control characters (and Ctrl-A sequences) from node status Extended node status can (and often does) contain Ctrl-A sequences. Strip those characters/sequences before putting into the NodeForm->ListView lines here. --- src/sbbs3/ctrl/NodeFormUnit.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/sbbs3/ctrl/NodeFormUnit.cpp b/src/sbbs3/ctrl/NodeFormUnit.cpp index 1181b8d80c..e78d86f7ce 100644 --- a/src/sbbs3/ctrl/NodeFormUnit.cpp +++ b/src/sbbs3/ctrl/NodeFormUnit.cpp @@ -34,6 +34,7 @@ ****************************************************************************/ //--------------------------------------------------------------------------- +#include "sbbs.h" #include <vcl.h> #pragma hdrstop #include <io.h> @@ -129,6 +130,7 @@ void __fastcall TNodeForm::TimerTick(TObject *Sender) { static int nodedab; char str[256]; + char tmp[128]; char status[128]; int i,n,rd,digits=1; node_t node; @@ -169,11 +171,11 @@ void __fastcall TNodeForm::TimerTick(TObject *Sender) if(rd!=sizeof(node_t)) continue; - - sprintf(str,"%*d %s" + + safe_snprintf(str, sizeof(str), "%*d %s" ,digits ,n+1 - ,nodestatus(&MainForm->cfg,&node,status,sizeof(status),n+1)); + ,strip_ctrl(nodestatus(&MainForm->cfg, &node, status, sizeof(status), n+1), tmp)); AnsiString Str=AnsiString(str); if(ListBox->Items->Count<n+1) ListBox->Items->Add(Str); -- GitLab