Fix more unicode/memory allocation errors in wininet

Mike McCormack mike at codeweavers.com
Wed Sep 24 00:35:05 CDT 2003


ChangeLog:
* Fix more unicode/memory allocation errors in wininet
-------------- next part --------------
Index: dlls/wininet/ftp.c
===================================================================
RCS file: /home/wine/wine/dlls/wininet/ftp.c,v
retrieving revision 1.32
diff -u -r1.32 ftp.c
--- dlls/wininet/ftp.c	5 Sep 2003 23:08:28 -0000	1.32
+++ dlls/wininet/ftp.c	23 Sep 2003 02:10:57 -0000
@@ -326,12 +326,13 @@
     INT len;
     BOOL rc;
 
-    len = lstrlenW(lpszDirectory)+1;
-    if (!(szDir = (CHAR *)malloc(len*sizeof(CHAR))))
+    len = WideCharToMultiByte(CP_ACP, 0, lpszDirectory, -1, NULL, 0, NULL, NULL);
+    szDir = HeapAlloc(GetProcessHeap(), 0, len);
+    if(!szDir)
         return FALSE;
-    WideCharToMultiByte(CP_ACP, -1, lpszDirectory, -1, szDir, len, NULL, NULL);
+    WideCharToMultiByte(CP_ACP, 0, lpszDirectory, -1, szDir, len, NULL, NULL);
     rc = FtpSetCurrentDirectoryA(hConnect, szDir);
-    free(szDir);
+    HeapFree(GetProcessHeap(), 0, szDir);
 
     return rc;
 }
@@ -450,12 +451,13 @@
     INT len;
     BOOL rc;
 
-    len = lstrlenW(lpszDirectory)+1;
-    if (!(szDir = (CHAR *)malloc(len*sizeof(CHAR))))
+    len = WideCharToMultiByte(CP_ACP, 0, lpszDirectory, -1, NULL, 0, NULL, NULL);
+    szDir = HeapAlloc(GetProcessHeap(), 0, len);
+    if (!szDir)
         return FALSE;
-    WideCharToMultiByte(CP_ACP, -1, lpszDirectory, -1, szDir, len, NULL, NULL);
+    WideCharToMultiByte(CP_ACP, 0, lpszDirectory, -1, szDir, len, NULL, NULL);
     rc = FtpCreateDirectoryA(hConnect, szDir);
-    free(szDir);
+    HeapFree(GetProcessHeap(), 0, szDir);
 
     return rc;
 }


More information about the wine-patches mailing list