aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorRyan Liptak <squeek502@hotmail.com>2023-03-08 00:57:39 -0800
committerRyan Liptak <squeek502@hotmail.com>2023-03-08 04:26:50 -0800
commit6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8 (patch)
treeb55da23e3755311c92e40675ffa97cf2b82f004f /lib
parente3cf9d165081533524927cebf8a92ac6fee097f2 (diff)
downloadzig-6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8.tar.gz
zig-6d74c0d1b41b52bca3d66092a48660f2ee4ae4f8.zip
Add comments explaining BUFFER_OVERFLOW during NtQueryInformationFile calls
Diffstat (limited to 'lib')
-rw-r--r--lib/std/fs/file.zig6
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,