From 66695aa049aa776593f8fd05cc938eefb08bf6e7 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Mon, 21 Jan 2002 03:16:01 +0000
Subject: [PATCH] readBin() now returns -1 instead of garbage when attempting
 to read past the end-of-file.

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

diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c
index 5715008636..1600bb940e 100644
--- a/src/sbbs3/js_file.c
+++ b/src/sbbs3/js_file.c
@@ -274,7 +274,7 @@ js_readbin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 	size_t		size=sizeof(DWORD);
 	private_t*	p;
 
-	*rval = JSVAL_NULL;
+	*rval = JSVAL_TO_INT(-1);
 
 	if((p=(private_t*)JS_GetPrivate(cx,obj))==NULL)
 		return(JS_FALSE);
@@ -287,16 +287,16 @@ js_readbin(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 
 	switch(size) {
 		case sizeof(BYTE):
-			fread(&b,1,size,p->fp);
-			*rval = INT_TO_JSVAL(b);
+			if(fread(&b,1,size,p->fp)==size)
+				*rval = INT_TO_JSVAL(b);
 			break;
 		case sizeof(WORD):
-			fread(&w,1,size,p->fp);
-			*rval = INT_TO_JSVAL(w);
+			if(fread(&w,1,size,p->fp)==size)
+				*rval = INT_TO_JSVAL(w);
 			break;
 		case sizeof(DWORD):
-			fread(&l,1,size,p->fp);
-			*rval = INT_TO_JSVAL(l);
+			if(fread(&l,1,size,p->fp)==size)
+				*rval = INT_TO_JSVAL(l);
 			break;
 	}
 		
-- 
GitLab