authorgravatar for jacobly@ziglang.orgJacob Young <jacobly@ziglang.org> 2025-04-22 00:23:15-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2025-07-01 16:35:28-07:00
log4004c8058e2233f1807c0c7f1a5bd4db4558a134
tree36c4b55c7fed6616ca88011c7cd856344fb39f8d
parent650bc19ff33cc6b48cca154b3740301ff0b02001

siphash: fix `std.io.Writer` API non-conformance


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

lib/std/crypto/siphash.zig+7-2
...@@ -252,10 +252,15 @@ fn SipHash(comptime T: type, comptime c_rounds: usize, comptime d_rounds: usize)...@@ -252,10 +252,15 @@ fn SipHash(comptime T: type, comptime c_rounds: usize, comptime d_rounds: usize)
252 fn writeSplat(ctx: ?*anyopaque, data: []const []const u8, splat: usize) anyerror!usize {252 fn writeSplat(ctx: ?*anyopaque, data: []const []const u8, splat: usize) anyerror!usize {
253 const self: *Self = @alignCast(@ptrCast(ctx));253 const self: *Self = @alignCast(@ptrCast(ctx));
254 var len: usize = 0;254 var len: usize = 0;
255 for (0..splat) |_| for (data) |slice| {255 for (data[0 .. data.len - 1]) |slice| {
256 self.update(slice);256 self.update(slice);
257 len += slice.len;257 len += slice.len;
258 };258 }
259 {
260 const slice = data[data.len - 1];
261 for (0..splat) |_| self.update(slice);
262 len += slice.len * splat;
263 }
259 return len;264 return len;
260 }265 }
261266