diff options
| author | Ryan Liptak <squeek502@hotmail.com> | 2023-03-08 00:57:39 -0800 |
|---|---|---|
| committer | Ryan Liptak <squeek502@hotmail.com> | 2023-03-08 04:26:50 -0800 |
| commit | 6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8 (patch) | |
| tree | b55da23e3755311c92e40675ffa97cf2b82f004f | |
| parent | e3cf9d165081533524927cebf8a92ac6fee097f2 (diff) | |
| download | zig-6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8.tar.gz zig-6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8.zip | |
Add comments explaining BUFFER_OVERFLOW during NtQueryInformationFile calls
| -rw-r--r-- | lib/std/fs/file.zig | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/std/fs/file.zig b/lib/std/fs/file.zig index bf93a61239..5306909aea 100644 --- 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, |
