zig

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

commit 6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8 (tree)
parent e3cf9d165081533524927cebf8a92ac6fee097f2
Author: Ryan Liptak <squeek502@hotmail.com>
Date:   Wed,  8 Mar 2023 00:57:39 -0800

Add comments explaining BUFFER_OVERFLOW during NtQueryInformationFile calls

Diffstat:
Mlib/std/fs/file.zig | 6++++++
1 file changed, 6 insertions(+), 0 deletions(-)

diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig @@ -379,6 +379,9 @@ pub const File = struct { const rc = windows.ntdll.NtQueryInformationFile(self.handle, &io_status_block, &info, @sizeOf(windows.FILE_ALL_INFORMATION), .FileAllInformation); switch (rc) { .SUCCESS => {}, + // Buffer overflow here indicates that there is more information available than was able to be stored in the buffer + // size provided. This is treated as success because the type of variable-length information that this would be relevant for + // (name, volume name, etc) we don't care about. .BUFFER_OVERFLOW => {}, .INVALID_PARAMETER => unreachable, .ACCESS_DENIED => return error.AccessDenied, @@ -830,6 +833,9 @@ pub const File = struct { const rc = windows.ntdll.NtQueryInformationFile(self.handle, &io_status_block, &info, @sizeOf(windows.FILE_ALL_INFORMATION), .FileAllInformation); switch (rc) { .SUCCESS => {}, + // Buffer overflow here indicates that there is more information available than was able to be stored in the buffer + // size provided. This is treated as success because the type of variable-length information that this would be relevant for + // (name, volume name, etc) we don't care about. .BUFFER_OVERFLOW => {}, .INVALID_PARAMETER => unreachable, .ACCESS_DENIED => return error.AccessDenied,