From b4b98f13da9597b37bf9d06ebabda52fab9837fc Mon Sep 17 00:00:00 2001 From: Rob Swindell <rob@synchro.net> Date: Sat, 19 Nov 2022 17:00:42 -0800 Subject: [PATCH] Fix return return value when methods auto-open a message base (e.g. save_msg()) js_open() sets the rval for the context (e.g. to JSVAL_TRUE), so we need to set it back to JSVAL_FALSE for failure conditions. Otherwise, the methods always return true even upon (save-msg) failure. --- src/sbbs3/js_msgbase.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/sbbs3/js_msgbase.c b/src/sbbs3/js_msgbase.c index c6d89ffd00..3c7d80650a 100644 --- a/src/sbbs3/js_msgbase.c +++ b/src/sbbs3/js_msgbase.c @@ -2578,6 +2578,7 @@ js_save_msg(JSContext *cx, uintN argc, jsval *arglist) return JS_FALSE; if(JS_RVAL(cx, arglist) == JSVAL_FALSE) return JS_TRUE; + JS_SET_RVAL(cx, arglist, JSVAL_FALSE); } memset(&msg,0,sizeof(msg)); @@ -2727,6 +2728,7 @@ js_vote_msg(JSContext *cx, uintN argc, jsval *arglist) return JS_FALSE; if(JS_RVAL(cx, arglist) == JSVAL_FALSE) return JS_TRUE; + JS_SET_RVAL(cx, arglist, JSVAL_FALSE); } memset(&msg, 0, sizeof(msg)); @@ -2794,6 +2796,7 @@ js_add_poll(JSContext *cx, uintN argc, jsval *arglist) return JS_FALSE; if(JS_RVAL(cx, arglist) == JSVAL_FALSE) return JS_TRUE; + JS_SET_RVAL(cx, arglist, JSVAL_FALSE); } memset(&msg, 0, sizeof(msg)); -- GitLab