diff --git a/src/sbbs3/userdat.c b/src/sbbs3/userdat.c index 79bcd23ce1f09569af6801227b78b4ebde58a311..88d62e8cfb0b01eae5e3b9a2c4655a3ada1ffe95 100644 --- a/src/sbbs3/userdat.c +++ b/src/sbbs3/userdat.c @@ -3339,7 +3339,10 @@ time_t gettimeleft(scfg_t* cfg, user_t* user, time_t starttime) if(tleft>cfg->level_timepercall[user->level]*60) tleft=cfg->level_timepercall[user->level]*60; tleft+=user->min*60L; - tleft-=(long)(now-starttime); + long tused = (long)MAX(now - starttime, 0); + tleft -= tused; + if(tleft < 0) + tleft = 0; if(tleft>0x7fffL) timeleft=0x7fff; else