From ebd19f29aa9ce2f6344ba6c96584b6dc9969aced Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 15 Aug 2019 18:34:03 +0000
Subject: [PATCH] Fix "off-by-one" error in File.readln() and readAll() with
 regards to the 'maxlen' argument. E.g. passing 10 would result in a maximum
 read string length of 9 characters.

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

diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c
index e159c67321..964175f51c 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--;
-- 
GitLab