From 2952b4eb95767bc97d8fec3e1be06220ea40a965 Mon Sep 17 00:00:00 2001
From: deuce <>
Date: Thu, 7 Feb 2013 06:20:21 +0000
Subject: [PATCH] Use HANDLE_PENDING() and support embedded NULLs in write()
 parameters.

---
 src/sbbs3/ftpsrvr.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 83a22b4516..559d304c0d 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -389,6 +389,7 @@ js_write(JSContext *cx, uintN argc, jsval *arglist)
 	FILE*	fp;
 	jsrefcount	rc;
 	char		*p;
+	size_t		len;
 
 	JS_SET_RVAL(cx, arglist, JSVAL_VOID);
 
@@ -399,12 +400,11 @@ js_write(JSContext *cx, uintN argc, jsval *arglist)
 		str = JS_ValueToString(cx, argv[i]);
 		if (!str)
 		    return JS_FALSE;
-		JSSTRING_TO_MSTRING(cx, str, p, NULL);
-		if(JS_IsExceptionPending(cx))
-			return JS_FALSE;
+		JSSTRING_TO_MSTRING(cx, str, p, &len);
+		HANDLE_PENDING(cx);
 		rc=JS_SUSPENDREQUEST(cx);
 		if(p) {
-			fputs(p, fp);
+			fwrite(p, len, 1, fp);
 			free(p);
 		}
 		JS_RESUMEREQUEST(cx, rc);
-- 
GitLab