From f6b4f4d017ebb34a75cc675dcb4eccad82685437 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Tue, 12 Jun 2001 01:25:55 +0000
Subject: [PATCH] Eliminated possible bounds problem with vsprintf in
 fs_printf().

---
 src/sbbs3/main.cpp | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp
index d5416363e8..a238975b1b 100644
--- a/src/sbbs3/main.cpp
+++ b/src/sbbs3/main.cpp
@@ -110,7 +110,7 @@ js_print(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 static JSBool
 js_printf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
-	char		tmp[1024];
+	char*		p;
     uintN		i;
 	JSString *	fmt;
     JSString *	str;
@@ -136,8 +136,11 @@ js_printf(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 			arglist[i-1]=NULL;
 	}
 	
-	vsprintf(tmp,JS_GetStringBytes(fmt),(char*)arglist);
-	sbbs->bputs(tmp);
+	if((p=JS_vsmprintf(JS_GetStringBytes(fmt),(char*)arglist))==NULL)
+		return JS_FALSE;
+
+	sbbs->bputs(p);
+	JS_smprintf_free(p);
 
     return JS_TRUE;
 }
-- 
GitLab