diff --git a/src/sbbs3/js_global.c b/src/sbbs3/js_global.c
index 1e7b83d32f1d9fa0a8fd5a8a81498739f418d4fb..f5a278ddde4c4ad11ed1c8b0e645bd16c36d7283 100644
--- a/src/sbbs3/js_global.c
+++ b/src/sbbs3/js_global.c
@@ -585,7 +585,7 @@ js_html_encode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 	if(argc>1 && JSVAL_IS_BOOLEAN(argv[1]))
 		exascii=JSVAL_TO_BOOLEAN(argv[1]);
 
-	if((outbuf=(char*)malloc(strlen(inbuf)*10))==NULL)
+	if((outbuf=(char*)malloc((strlen(inbuf)*10)+1))==NULL)
 		return(JS_FALSE);
 
 	for(i=j=0;inbuf[i];i++) {
@@ -660,7 +660,7 @@ js_html_decode(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rva
 	if((inbuf=JS_GetStringBytes(JS_ValueToString(cx, argv[0])))==NULL) 
 		return(JS_FALSE);
 
-	if((outbuf=(char*)malloc(strlen(inbuf)))==NULL)
+	if((outbuf=(char*)malloc(strlen(inbuf)+1))==NULL)
 		return(JS_FALSE);
 
 	for(i=j=0;inbuf[i];i++) {