zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit c0c228b758150e017185dc280ef020ec3b7efdcf (tree)
parent 6cb4cac5cd1c68f41c62a3c23b09513988337c8d
Author: Euan Torano <euantorano@gmail.com>
Date:   Fri,  2 Aug 2019 13:19:49 +0100

Check if /dev/urandom is a character device

Diffstat:
Mstd/os.zig | 5+++++
1 file changed, 5 insertions(+), 0 deletions(-)

diff --git a/std/os.zig b/std/os.zig @@ -133,6 +133,11 @@ fn getRandomBytesDevURandom(buf: []u8) !void { const fd = try openC(c"/dev/urandom", O_RDONLY | O_CLOEXEC, 0); defer close(fd); + const st = try fstat(fd); + if (!S_ISCHR(st.mode)) { + return OpenError.Unexpected; + } + const stream = &std.fs.File.openHandle(fd).inStream().stream; stream.readNoEof(buf) catch return error.Unexpected; }