From 08fef9b277b9202f3eaa4ae154c592407d167fcf Mon Sep 17 00:00:00 2001 From: Joshua Wierenga Date: Thu, 23 Feb 2023 13:42:13 +1100 Subject: [PATCH] Fix nt path format check (#744) --- libc/calls/mkntpath.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libc/calls/mkntpath.c b/libc/calls/mkntpath.c index 11ce397f6..df68f4d9b 100644 --- a/libc/calls/mkntpath.c +++ b/libc/calls/mkntpath.c @@ -79,7 +79,7 @@ textwindows int __mkntpath2(const char *path, * 1. Need +1 for NUL-terminator * 2. Need +1 for UTF-16 overflow * 3. Need ≥2 for SetCurrentDirectory trailing slash requirement - * 5. Need ≥13 for mkdir() i.e. 1+8+3+1, e.g. "\\ffffffff.xxx\0" + * 4. Need ≥13 for mkdir() i.e. 1+8+3+1, e.g. "\\ffffffff.xxx\0" * which is an "8.3 filename" from the DOS days */ const char *q; @@ -119,7 +119,7 @@ textwindows int __mkntpath2(const char *path, q += 2; z -= 7; x = 7; - } else if (IsSlash(q[0]) && IsAlpha(q[1]) && IsSlash(q[2])) { + } else if (IsAlpha(q[0]) && q[1] == ':' && IsSlash(q[2])) { z = MIN(32767, PATH_MAX); // turn "c:\foo" into "\\?\c:\foo" p[0] = '\\';