authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-07 10:59:44-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-07 11:03:37-08:00
log5d0929c40dcb0456cbef88fe10197af81e984142
tree3670b522bc6de68da95081ddde76f3b69afde749
parent5e5b328dacb23e0804f05e0e1228f1671001d7ff

std.Io.Threaded.randomSecure: eliminate dead code


1 files changed, 6 insertions(+), 9 deletions(-)

lib/std/Io/Threaded.zig+6-9
......@@ -15284,9 +15284,9 @@ fn fallbackSeedWasi(seed: *[Csprng.seed_len]u8) void {
1528415284
1528515285fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void {
1528615286 const t: *Threaded = @ptrCast(@alignCast(userdata));
15287 if (buffer.len == 0) return;
1528815287
1528915288 if (is_windows) {
15289 if (buffer.len == 0) return;
1529015290 // ProcessPrng from bcryptprimitives.dll has the following properties:
1529115291 // * introduces a dependency on bcryptprimitives.dll, which apparently
1529215292 // runs a test suite every time it is loaded
......@@ -15331,11 +15331,13 @@ fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void {
1533115331 }
1533215332
1533315333 if (builtin.link_libc and @TypeOf(posix.system.arc4random_buf) != void) {
15334 if (buffer.len == 0) return;
1533415335 posix.system.arc4random_buf(buffer.ptr, buffer.len);
1533515336 return;
1533615337 }
1533715338
1533815339 if (native_os == .wasi) {
15340 if (buffer.len == 0) return;
1533915341 const syscall: Syscall = try .start();
1534015342 while (true) switch (std.os.wasi.random_get(buffer.ptr, buffer.len)) {
1534115343 .SUCCESS => return syscall.finish(),
......@@ -15351,7 +15353,7 @@ fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void {
1535115353 const getrandom = if (use_libc_getrandom) std.c.getrandom else std.os.linux.getrandom;
1535215354 var i: usize = 0;
1535315355 const syscall: Syscall = try .start();
15354 while (i < buffer.len) {
15356 while (buffer.len - i != 0) {
1535515357 const buf = buffer[i..];
1535615358 const rc = getrandom(buf.ptr, buf.len, 0);
1535715359 switch (posix.errno(rc)) {
......@@ -15372,6 +15374,7 @@ fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void {
1537215374 }
1537315375
1537415376 if (native_os == .emscripten) {
15377 if (buffer.len == 0) return;
1537515378 const err = posix.errno(std.c.getentropy(buffer.ptr, buffer.len));
1537615379 switch (err) {
1537715380 .SUCCESS => return,
......@@ -15391,13 +15394,7 @@ fn randomSecure(userdata: ?*anyopaque, buffer: []u8) Io.RandomSecureError!void {
1539115394 .SUCCESS => {
1539215395 syscall.finish();
1539315396 const n: usize = @intCast(rc);
15394 if (n == 0) {
15395 if (buffer.len - i != 0) {
15396 return error.EntropyUnavailable;
15397 } else {
15398 return;
15399 }
15400 }
15397 if (n == 0) return error.EntropyUnavailable;
1540115398 i += n;
1540215399 continue;
1540315400 },