From edd9d73b0da03f9220493be6ad3d590f3bab0d5f Mon Sep 17 00:00:00 2001 From: Robert Burke Date: Wed, 11 Jan 2023 20:37:25 +0000 Subject: [PATCH] Fix buffer overflow in fmt when DAZ is set --- lib/std/fmt/errol.zig | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/std/fmt/errol.zig b/lib/std/fmt/errol.zig index 1ce72de0fc..1c67175ede 100644 --- a/lib/std/fmt/errol.zig +++ b/lib/std/fmt/errol.zig @@ -169,7 +169,8 @@ fn errolSlow(val: f64, buffer: []u8) FloatDecimal { // digit generation var buf_index: usize = 0; - while (true) { + const bound = buffer.len - 1; + while (buf_index < bound) { var hdig = @floatToInt(u8, @floor(high.val)); if ((high.val == @intToFloat(f64, hdig)) and (high.off < 0)) hdig -= 1;