Commit c0c228b758

Euan Torano <euantorano@gmail.com>
2019-08-02 14:19:49
Check if /dev/urandom is a character device
1 parent 6cb4cac
Changed files (1)
std
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;
 }