Make binary search overflow safe.
Our internal static analysis flags potentially unsafe midpoint
calculations. The proposed fix ensures the binary search doesn't
overflow at the cost of a single additional operation.
diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h
index e427da1..16f2632 100644
--- a/src/vk_mem_alloc.h
+++ b/src/vk_mem_alloc.h
@@ -4721,7 +4721,7 @@
size_t down = 0, up = (end - beg);
while(down < up)
{
- const size_t mid = (down + up) / 2;
+ const size_t mid = down + (up - down) / 2; // Overflow-safe midpoint calculation
if(cmp(*(beg+mid), key))
{
down = mid + 1;