From b05908eb992740f4d26189af07cb5da2543c653b Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Thu, 13 Mar 2003 01:49:09 +0000
Subject: [PATCH] Now clears pending exceptions before compiling script.

---
 src/sbbs3/exec.cpp   | 2 ++
 src/sbbs3/ftpsrvr.c  | 3 +++
 src/sbbs3/services.c | 4 ++++
 src/sbbs3/websrvr.c  | 2 ++
 4 files changed, 11 insertions(+)

diff --git a/src/sbbs3/exec.cpp b/src/sbbs3/exec.cpp
index 6b2b6af401..d9e68b5295 100644
--- a/src/sbbs3/exec.cpp
+++ b/src/sbbs3/exec.cpp
@@ -633,6 +633,8 @@ long sbbs_t::js_execfile(const char *cmd)
 		JS_DefineProperty(js_cx, js_scope, "argc", INT_TO_JSVAL(argc)
 			,NULL,NULL,JSPROP_READONLY|JSPROP_ENUMERATE);
 
+		JS_ClearPendingException(js_cx);
+
 		js_script=JS_CompileFile(js_cx, js_scope, path);
 	}
 
diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c
index 34ec035486..c06447c495 100644
--- a/src/sbbs3/ftpsrvr.c
+++ b/src/sbbs3/ftpsrvr.c
@@ -974,7 +974,10 @@ BOOL js_generate_index(JSContext* js_cx, JSObject* parent,
 			globfree(&g);
 		}
 
+
 		/* RUN SCRIPT */
+		JS_ClearPendingException(js_cx);
+
 		if((js_script=JS_CompileFile(js_cx, parent, spath))==NULL) {
 			lprintf("%04d !JavaScript FAILED to compile script (%s)",sock,spath);
 			break;
diff --git a/src/sbbs3/services.c b/src/sbbs3/services.c
index 136a414617..5f063351a0 100644
--- a/src/sbbs3/services.c
+++ b/src/sbbs3/services.c
@@ -853,6 +853,8 @@ static void js_service_thread(void* arg)
 	JS_SetProperty(js_cx, js_glob, "datagram", &val);
 	FREE_AND_NULL(service_client.udp_buf);
 
+	JS_ClearPendingException(js_cx);
+
 	js_script=JS_CompileFile(js_cx, js_glob, spath);
 
 	if(js_script==NULL) 
@@ -938,6 +940,8 @@ static void js_static_service_thread(void* arg)
 	val = BOOLEAN_TO_JSVAL(JS_FALSE);
 	JS_SetProperty(js_cx, js_glob, "logged_in", &val);
 
+	JS_ClearPendingException(js_cx);
+
 	js_script=JS_CompileFile(js_cx, js_glob, spath);
 
 	if(js_script==NULL) 
diff --git a/src/sbbs3/websrvr.c b/src/sbbs3/websrvr.c
index 3ba6307337..411db2234c 100644
--- a/src/sbbs3/websrvr.c
+++ b/src/sbbs3/websrvr.c
@@ -2004,6 +2004,8 @@ static void respond(http_session_t * session)
 		do {
 
 			/* RUN SCRIPT */
+			JS_ClearPendingException(session->js_cx);
+
 			if((js_script=JS_CompileFile(session->js_cx, session->js_glob
 				,session->req.physical_path))==NULL) {
 				lprintf("%04d !JavaScript FAILED to compile script (%s)"
-- 
GitLab