From 7188ca0b27ba594a93283313fd99ec35f6c82e58 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 8 Mar 2002 13:12:42 +0000 Subject: [PATCH] Fixed null pointer dereferences when accessing properites of unopen file. --- src/sbbs3/js_file.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/sbbs3/js_file.c b/src/sbbs3/js_file.c index 885e097cb6..1ce9573391 100644 --- a/src/sbbs3/js_file.c +++ b/src/sbbs3/js_file.c @@ -668,13 +668,22 @@ static JSBool js_file_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp) *vp = BOOLEAN_TO_JSVAL(p->fp!=NULL); break; case FILE_PROP_EOF: - *vp = BOOLEAN_TO_JSVAL(feof(p->fp)!=0); + if(p->fp) + *vp = BOOLEAN_TO_JSVAL(feof(p->fp)!=0); + else + *vp = BOOLEAN_TO_JSVAL(JS_TRUE); break; case FILE_PROP_ERROR: - *vp = INT_TO_JSVAL(ferror(p->fp)); + if(p->fp) + *vp = INT_TO_JSVAL(ferror(p->fp)); + else + *vp = INT_TO_JSVAL(0); break; case FILE_PROP_POSITION: - *vp = INT_TO_JSVAL(ftell(p->fp)); + if(p->fp) + *vp = INT_TO_JSVAL(ftell(p->fp)); + else + *vp = INT_TO_JSVAL(-1); break; case FILE_PROP_LENGTH: if(p->fp) /* open? */ @@ -689,7 +698,10 @@ static JSBool js_file_get(JSContext *cx, JSObject *obj, jsval id, jsval *vp) *vp = INT_TO_JSVAL(p->debug); break; case FILE_PROP_DESCRIPTOR: - *vp = INT_TO_JSVAL(fileno(p->fp)); + if(p->fp) + *vp = INT_TO_JSVAL(fileno(p->fp)); + else + *vp = INT_TO_JSVAL(-1); break; case FILE_PROP_ETX: *vp = INT_TO_JSVAL(p->etx); -- GitLab