From 67b3a7a2c3b5e6f261f38c426784c9fa8df0296d Mon Sep 17 00:00:00 2001 From: gocurr Date: Thu, 8 Jun 2023 20:27:59 +0800 Subject: [PATCH] bug: avoid overflow when computing mid in the binarySearch of the workerStack (#278) --- worker_stack.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/worker_stack.go b/worker_stack.go index 970ca95..0843dd4 100644 --- a/worker_stack.go +++ b/worker_stack.go @@ -61,9 +61,8 @@ func (wq *workerStack) refresh(duration time.Duration) []worker { } func (wq *workerStack) binarySearch(l, r int, expiryTime time.Time) int { - var mid int for l <= r { - mid = (l + r) / 2 + mid := int(uint(l+r) >> 1) // avoid overflow when computing mid if expiryTime.Before(wq.items[mid].lastUsedTime()) { r = mid - 1 } else {