From 3cc5dda7568b845d5002be4dd3181145ecc3f8bd Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Wed, 28 Jan 2026 23:18:24 -0800 Subject: [PATCH] fix RtlGetCurrentDirectory_U parameter it's the byte length not number of wchars --- lib/std/Io/Threaded.zig | 2 +- lib/std/os/windows/ntdll.zig | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index 2690734e87c60e1fe41a95329e38b2a10cc3bf22..1a15bae33b89b60895f5130bae24cd61b9da4e4c 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -12607,7 +12607,7 @@ fn processCurrentDir(userdata: ?*anyopaque, buffer: []u8) process.CurrentDirErro _ = t; if (is_windows) { var wtf16le_buf: [windows.PATH_MAX_WIDE:0]u16 = undefined; - const n = windows.ntdll.RtlGetCurrentDirectory_U(wtf16le_buf.len + 1, &wtf16le_buf); + const n = windows.ntdll.RtlGetCurrentDirectory_U(wtf16le_buf.len * 2 + 2, &wtf16le_buf) / 2; if (n == 0) return error.Unexpected; assert(n <= wtf16le_buf.len); const wtf16le_slice = wtf16le_buf[0..n]; diff --git a/lib/std/os/windows/ntdll.zig b/lib/std/os/windows/ntdll.zig index 52361ed982942864af6bd395a947e35e600b7adc..f61cbbf5b8fe8bc468ad2f93638ca60503c54ed2 100644 --- a/lib/std/os/windows/ntdll.zig +++ b/lib/std/os/windows/ntdll.zig @@ -497,7 +497,7 @@ pub extern "ntdll" fn RtlGetFullPathName_U( ) callconv(.winapi) ULONG; pub extern "ntdll" fn RtlGetCurrentDirectory_U( - BufferLength: ULONG, + BufferByteLength: ULONG, Buffer: [*]u16, ) callconv(.winapi) ULONG; -- 2.54.0