diff --git a/src/sbbs3/js_user.c b/src/sbbs3/js_user.c index 19599a7e8219da7631958f29d45a4a3944f046d0..9b126c4c3d5785f7725916ad9cf1181364a16c57 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;