diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c
index e159c67321dd73e491b96bdde4ba1e072285d4b0..964175f51c380f90ea620aef7bb1cb0ae713a5e8 100644
--- a/src/sbbs3/js_file.c
+++ b/src/sbbs3/js_file.c
@@ -533,11 +533,11 @@ js_readln(JSContext *cx, uintN argc, jsval *arglist)
 			return(JS_FALSE);
 	}
 
-	if((buf=malloc(len))==NULL)
+	if((buf=malloc(len + 1))==NULL)
 		return(JS_FALSE);
 
 	rc=JS_SUSPENDREQUEST(cx);
-	if(fgets(buf,len,p->fp)!=NULL) {
+	if(fgets(buf,len + 1,p->fp)!=NULL) {
 		len=strlen(buf);
 		while(len>0 && (buf[len-1]=='\r' || buf[len-1]=='\n'))
 			len--;