瀏覽代碼

drouting: rework expression to prevent value overflow

Daniel-Constantin Mierla 4 月之前
父節點
當前提交
eee4431447
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      src/modules/drouting/dr_time.c

+ 1 - 1
src/modules/drouting/dr_time.c

@@ -964,7 +964,7 @@ int dr_check_freq_interval(dr_tmrec_p _trp, dr_ac_tm_p _atp)
 						   ? REC_MATCH
 						   : REC_NOMATCH;
 		case FREQ_MONTHLY:
-			_t0 = (_atp->t.tm_year - _trp->ts.tm_year) * 12 + _atp->t.tm_mon
+			_t0 = 12ULL * (_atp->t.tm_year - _trp->ts.tm_year) + _atp->t.tm_mon
 				  - _trp->ts.tm_mon;
 			return (_t0 % _trp->interval == 0) ? REC_MATCH : REC_NOMATCH;
 		case FREQ_YEARLY: