krnl386.exe16: Increase buffer size in GetTempDrive.

Sebastian Lackner sebastian at fds-team.de
Tue Aug 18 23:35:21 CDT 2015


From: Michael Müller <michael at fds-team.de>

The buffer is cleared again when it is too small for the whole temp path,
and unfortunately 8 bytes are not really sufficient.

For https://bugs.winehq.org/show_bug.cgi?id=39104

---
 dlls/krnl386.exe16/file.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/krnl386.exe16/file.c b/dlls/krnl386.exe16/file.c
index 6c3cef3..77908c2 100644
--- a/dlls/krnl386.exe16/file.c
+++ b/dlls/krnl386.exe16/file.c
@@ -461,10 +461,10 @@ LONG WINAPI _hwrite16( HFILE16 hFile, LPCSTR buffer, LONG count )
  */
 UINT WINAPI GetTempDrive( BYTE ignored )
 {
-    WCHAR buffer[8];
+    WCHAR buffer[MAX_PATH];
     BYTE ret;
 
-    if (GetTempPathW( 8, buffer )) ret = (BYTE)toupperW(buffer[0]);
+    if (GetTempPathW( MAX_PATH, buffer )) ret = (BYTE)toupperW(buffer[0]);
     else ret = 'C';
     return MAKELONG( ret | (':' << 8), 1 );
 }
-- 
2.5.0



More information about the wine-patches mailing list