authorgravatar for 3811822-hoanga@users.noreply.gitlab.comAl Hoang <3811822-hoanga@users.noreply.gitlab.com> 2021-10-31 21:25:20-05:00
committergravatar for 3811822-hoanga@users.noreply.gitlab.comAl Hoang <3811822-hoanga@users.noreply.gitlab.com> 2021-11-15 00:29:26-06:00
logb875f79dd8807fee1aec8bf443b43ec4f3b53fa9
tree7cd3c6093df4d5f58e3f15cdccaaf66f43348ff5
parent406baf4b1283571c7ef28143eb35f2f24238ef3c

add fork case for haiku


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

lib/std/crypto/tlcsprng.zig+2-1
...@@ -40,6 +40,7 @@ const maybe_have_wipe_on_fork = builtin.os.isAtLeast(.linux, .{...@@ -40,6 +40,7 @@ const maybe_have_wipe_on_fork = builtin.os.isAtLeast(.linux, .{
40 .major = 4,40 .major = 4,
41 .minor = 14,41 .minor = 14,
42}) orelse true;42}) orelse true;
43const is_haiku = builtin.os.tag == .haiku;
4344
44const Context = struct {45const Context = struct {
45 init_state: enum(u8) { uninitialized = 0, initialized, failed },46 init_state: enum(u8) { uninitialized = 0, initialized, failed },
...@@ -72,7 +73,7 @@ fn tlsCsprngFill(_: *c_void, buffer: []u8) void {...@@ -72,7 +73,7 @@ fn tlsCsprngFill(_: *c_void, buffer: []u8) void {
7273
73 if (wipe_mem.len == 0) {74 if (wipe_mem.len == 0) {
74 // Not initialized yet.75 // Not initialized yet.
75 if (want_fork_safety and maybe_have_wipe_on_fork) {76 if (want_fork_safety and maybe_have_wipe_on_fork or is_haiku) {
76 // Allocate a per-process page, madvise operates with page77 // Allocate a per-process page, madvise operates with page
77 // granularity.78 // granularity.
78 wipe_mem = os.mmap(79 wipe_mem = os.mmap(