From b3f366ffa3bb61e38123066b9888ed84c7c44fdd Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Sun, 9 Oct 2011 19:10:37 +0000
Subject: [PATCH] Add JSVALUE_TO_STRING() macro and ensure NULL returns on
 errors.

---
 src/sbbs3/sbbs.h | 19 ++++++++++++++-----
 1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index 0d24379ba9..febbf15958 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -128,15 +128,24 @@ extern int	thread_suid_broken;			/* NPTL is no longer broken */
 	size_t			pos; \
 	const jschar	*val; \
 \
-	if((val=JS_GetStringCharsAndLength(cx, str, &len))) { \
-		if((ret=alloca(len+1))) { \
-			for(pos=0; pos<len; pos++) \
-				ret[pos]=val[pos]; \
-			ret[len]=0; \
+	ret=NULL; \
+	if(str != NULL) { \
+		if((val=JS_GetStringCharsAndLength(cx, str, &len))) { \
+			if((ret=(char *)alloca(len+1))) { \
+				for(pos=0; pos<len; pos++) \
+					ret[pos]=val[pos]; \
+				ret[len]=0; \
+			} \
 		} \
 	} \
 }
 
+#define JSVALUE_TO_STRING(cx, val, ret) \
+{ \
+	JSString	str=JS_ValueToString(cx, val); \
+	JSSTRING_TO_STRING(cx, str, ret); \
+}
+
 #endif
 
 #ifdef USE_CRYPTLIB
-- 
GitLab