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