wininet: Space for current directory allocated from the heap

Phil Lodwick Phil.Lodwick at EFI.COM
Mon May 22 16:02:29 CDT 2006


---

 dlls/wininet/ftp.c |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

80e348f59e9dd2e4dbacc623e50bb5467dc15192
diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index 0024a95..4eff21b 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -746,16 +746,21 @@ lend:
 BOOL WINAPI FtpGetCurrentDirectoryA(HINTERNET hFtpSession, LPSTR
lpszCurrentDirectory,
     LPDWORD lpdwCurrentDirectory)
 {
-    WCHAR dir[MAX_PATH];
+    WCHAR *dir = NULL;
     DWORD len;
     BOOL ret;
 
-    if(lpdwCurrentDirectory) len = *lpdwCurrentDirectory;
+    if(lpdwCurrentDirectory) {
+        len = *lpdwCurrentDirectory;
+        dir = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
+    }
     ret = FtpGetCurrentDirectoryW(hFtpSession,
lpszCurrentDirectory?dir:NULL, lpdwCurrentDirectory?&len:NULL);
     if(lpdwCurrentDirectory) {
         *lpdwCurrentDirectory = len;
-        if(lpszCurrentDirectory)
+        if(lpszCurrentDirectory) {
             WideCharToMultiByte(CP_ACP, 0, dir, len, lpszCurrentDirectory,
*lpdwCurrentDirectory, NULL, NULL);
+            HeapFree(GetProcessHeap(), 0, dir);
+	}
     }
     return ret;
 }
-- 
1.2.4




More information about the wine-patches mailing list