Fix int overflow on x32 processors causing panic (#3810)

During the roll, "duration" is converted to int, causing overflow on x32 processors. The value may be very small or negative, causing a panic in rand.Intn.
This commit is contained in:
Kuzmin Vladimir authored and GitHub committed 2024-09-14 23:47:16 -04:00
1 parent 781aaee21f
commit d7c5a0fc5f
2 files changed
+9 -1

No files matched your search

+1 -1
View File
@@ -156,7 +156,7 @@ func (h *HealthPing) doCheck(tags []string, duration time.Duration, rounds int)
for i := 0; i < rounds; i++ {
delay := time.Duration(0)
if duration > 0 {
delay = time.Duration(dice.Roll(int(duration)))
delay = time.Duration(dice.RollInt63n(int64(duration)))
}
time.AfterFunc(delay, func() {
errors.LogDebug(h.ctx, "checking ", handler)