From e2527c8af30b2e5c78b0cc44dac50a98ab1da314 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Sun, 18 Aug 2019 04:27:47 +0000 Subject: [PATCH] Don't return negative values from user.get_time_left(), instead, clamp to INT32_MAX. --- src/sbbs3/js_user.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sbbs3/js_user.c b/src/sbbs3/js_user.c index 19599a7e82..9b126c4c3d 100644 --- a/src/sbbs3/js_user.c +++ b/src/sbbs3/js_user.c @@ -1212,6 +1212,7 @@ js_get_time_left(JSContext *cx, uintN argc, jsval *arglist) int32 start_time=0; jsrefcount rc; scfg_t* scfg; + ulong tl; scfg=JS_GetRuntimePrivate(JS_GetRuntime(cx)); @@ -1228,7 +1229,8 @@ js_get_time_left(JSContext *cx, uintN argc, jsval *arglist) rc=JS_SUSPENDREQUEST(cx); js_getuserdat(scfg,p); - JS_SET_RVAL(cx, arglist, INT_TO_JSVAL((int32_t)gettimeleft(scfg, p->user, start_time))); + tl = gettimeleft(scfg, p->user, start_time); + JS_SET_RVAL(cx, arglist, INT_TO_JSVAL(tl > INT32_MAX ? INT32_MAX : (int32) tl)); JS_RESUMEREQUEST(cx, rc); return JS_TRUE; -- GitLab