authorgravatar for robert.burke@ltcm.lolRobert Burke <robert.burke@ltcm.lol> 2023-01-11 20:37:25+00:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2023-01-17 16:29:37-07:00
logedd9d73b0da03f9220493be6ad3d590f3bab0d5f
tree3227201d268d85e343894bea32db52378afe17ca
parent0a03d68594374698b5d751530d6ee7f47a2f75b3

Fix buffer overflow in fmt when DAZ is set


1 files changed, 2 insertions(+), 1 deletions(-)

lib/std/fmt/errol.zig+2-1
...@@ -169,7 +169,8 @@ fn errolSlow(val: f64, buffer: []u8) FloatDecimal {...@@ -169,7 +169,8 @@ fn errolSlow(val: f64, buffer: []u8) FloatDecimal {
169169
170 // digit generation170 // digit generation
171 var buf_index: usize = 0;171 var buf_index: usize = 0;
172 while (true) {172 const bound = buffer.len - 1;
173 while (buf_index < bound) {
173 var hdig = @floatToInt(u8, @floor(high.val));174 var hdig = @floatToInt(u8, @floor(high.val));
174 if ((high.val == @intToFloat(f64, hdig)) and (high.off < 0)) hdig -= 1;175 if ((high.val == @intToFloat(f64, hdig)) and (high.off < 0)) hdig -= 1;
175176