From e7a381f1244d4bf5a30825d5e1a40a73c67ef544 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 19 Mar 2004 10:22:50 +0000
Subject: [PATCH] MSCRTL implementation of vsnprintf() returns -1 on overflow
 (output truncated).

---
 src/sbbs3/ftpsrvr.c  | 4 +---
 src/sbbs3/mailsrvr.c | 4 +---
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 8b4342ccbd..77e1049a9a 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -284,9 +284,7 @@ static int sockprintf(SOCKET sock, char *fmt, ...)
     len=vsnprintf(sbuf,maxlen=sizeof(sbuf)-2,fmt,argptr);
     va_end(argptr);
 
-	if(len<0)		/* format error? */
-		return(0);
-	if(len>maxlen)	/* output truncated */
+	if(len<0 || len>maxlen) /* format error or output truncated */
 		len=maxlen;
 	if(startup!=NULL && startup->options&FTP_OPT_DEBUG_TX)
 		lprintf(LOG_DEBUG,"%04d TX: %.*s", sock, len, sbuf);
diff --git a/src/sbbs3/mailsrvr.c b/src/sbbs3/mailsrvr.c
index 547a834344..ba14596dae 100644
--- a/src/sbbs3/mailsrvr.c
+++ b/src/sbbs3/mailsrvr.c
@@ -247,9 +247,7 @@ int sockprintf(SOCKET sock, char *fmt, ...)
     len=vsnprintf(sbuf,maxlen=sizeof(sbuf)-2,fmt,argptr);
     va_end(argptr);
 
-	if(len<0)		/* format error? */
-		return(0);
-	if(len>maxlen)	/* output truncated */
+	if(len<0 || len > maxlen) /* format error or output truncated */
 		len=maxlen;
 	if(startup->options&MAIL_OPT_DEBUG_TX)
 		lprintf(LOG_DEBUG,"%04d TX: %.*s", sock, len, sbuf);
-- 
GitLab