diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 83a22b451617bfb6a3befe63481af0fef3e3b36c..559d304c0deefc8203b737979c55f3947dc84431 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);