From 31abf30a423a25ab35b1bbd0e069f0cfe48c7f3c Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 21 May 2003 23:19:27 +0000
Subject: [PATCH] truncsp() and truncstr() don't overwrite 0-terminator if's
 already there (avoids segfaults when accidentally called with string
 constants).

---
 src/sbbs3/str_util.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/str_util.c b/src/sbbs3/str_util.c
index 583af89ead..b6e0b8adcf 100644
--- a/src/sbbs3/str_util.c
+++ b/src/sbbs3/str_util.c
@@ -234,11 +234,12 @@ char* DLLCALL ultoac(ulong l, char *string)
 /****************************************************************************/
 char* DLLCALL truncsp(char *str)
 {
-	uint c;
+	size_t c;
 
 	c=strlen(str);
 	while(c && (uchar)str[c-1]<=' ') c--;
-	str[c]=0;
+	if(str[c]!=0)
+		str[c]=0;
 	return(str);
 }
 
@@ -250,7 +251,7 @@ char* DLLCALL truncstr(char* str, const char* set)
 	char* p;
 
 	p=strpbrk(str,set);
-	if(p!=NULL)
+	if(p!=NULL && *p!=0)
 		*p=0;
 
 	return(p);
-- 
GitLab