Fix a bunch of unicode/memory allocation errors
Mike McCormack
mike at codeweavers.com
Tue Sep 23 13:15:14 CDT 2003
ChangeLog:
* Fix a bunch of unicode/memory allocation errors
-------------- next part --------------
Index: dlls/wininet/internet.c
===================================================================
RCS file: /home/wine/wine/dlls/wininet/internet.c,v
retrieving revision 1.66
diff -u -r1.66 internet.c
--- dlls/wininet/internet.c 5 Sep 2003 23:08:28 -0000 1.66
+++ dlls/wininet/internet.c 22 Sep 2003 14:46:27 -0000
@@ -352,9 +352,9 @@
LPCWSTR lpszProxy, LPCWSTR lpszProxyBypass, DWORD dwFlags)
{
HINTERNET rc = (HINTERNET)NULL;
- INT lenAgent = lstrlenW(lpszAgent)+1;
- INT lenProxy = lstrlenW(lpszProxy)+1;
- INT lenBypass = lstrlenW(lpszProxyBypass)+1;
+ INT lenAgent = WideCharToMultiByte(CP_ACP, 0, lpszAgent, -1, NULL, 0, NULL, NULL);
+ INT lenProxy = WideCharToMultiByte(CP_ACP, 0, lpszProxy, -1, NULL, 0, NULL, NULL);
+ INT lenBypass = WideCharToMultiByte(CP_ACP, 0, lpszProxyBypass, -1, NULL, 0, NULL, NULL);
CHAR *szAgent = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenAgent*sizeof(CHAR));
CHAR *szProxy = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenProxy*sizeof(CHAR));
CHAR *szBypass = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenBypass*sizeof(CHAR));
@@ -362,19 +362,19 @@
if (!szAgent || !szProxy || !szBypass)
{
if (szAgent)
- free(szAgent);
+ HeapFree(GetProcessHeap(), 0, szAgent);
if (szProxy)
- free(szProxy);
+ HeapFree(GetProcessHeap(), 0, szProxy);
if (szBypass)
- free(szBypass);
+ HeapFree(GetProcessHeap(), 0, szBypass);
return (HINTERNET)NULL;
}
- WideCharToMultiByte(CP_ACP, -1, lpszAgent, -1, szAgent, lenAgent,
+ WideCharToMultiByte(CP_ACP, 0, lpszAgent, -1, szAgent, lenAgent,
NULL, NULL);
- WideCharToMultiByte(CP_ACP, -1, lpszProxy, -1, szProxy, lenProxy,
+ WideCharToMultiByte(CP_ACP, 0, lpszProxy, -1, szProxy, lenProxy,
NULL, NULL);
- WideCharToMultiByte(CP_ACP, -1, lpszProxyBypass, -1, szBypass, lenBypass,
+ WideCharToMultiByte(CP_ACP, 0, lpszProxyBypass, -1, szBypass, lenBypass,
NULL, NULL);
rc = InternetOpenA(szAgent, dwAccessType, szProxy, szBypass, dwFlags);
@@ -532,23 +532,26 @@
if (lpszServerName)
{
- lenServer = lstrlenW(lpszServerName)+1;
+ lenServer = WideCharToMultiByte(CP_ACP, 0, lpszServerName, -1, NULL, 0,
+ NULL, NULL);
szServerName = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenServer*sizeof(CHAR));
- WideCharToMultiByte(CP_ACP, -1, lpszServerName, -1, szServerName, lenServer,
+ WideCharToMultiByte(CP_ACP, 0, lpszServerName, -1, szServerName, lenServer,
NULL, NULL);
}
if (lpszUserName)
{
- lenUser = lstrlenW(lpszUserName)+1;
+ lenUser = WideCharToMultiByte(CP_ACP, 0, lpszUserName, -1, NULL, 0,
+ NULL, NULL);
szUserName = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenUser*sizeof(CHAR));
- WideCharToMultiByte(CP_ACP, -1, lpszUserName, -1, szUserName, lenUser,
+ WideCharToMultiByte(CP_ACP, 0, lpszUserName, -1, szUserName, lenUser,
NULL, NULL);
}
if (lpszPassword)
{
- lenPass = lstrlenW(lpszPassword)+1;
+ lenPass = WideCharToMultiByte(CP_ACP, 0, lpszPassword, -1, NULL, 0,
+ NULL, NULL);
szPassword = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenPass*sizeof(CHAR));
- WideCharToMultiByte(CP_ACP, -1, lpszPassword, -1, szPassword, lenPass,
+ WideCharToMultiByte(CP_ACP, 0, lpszPassword, -1, szPassword, lenPass,
NULL, NULL);
}
@@ -906,7 +909,7 @@
if(lpszScheme==NULL)
return INTERNET_SCHEME_UNKNOWN;
- tempBuffer=malloc(nMaxCmp+1);
+ tempBuffer=HeapAlloc(GetProcessHeap(),0,(nMaxCmp+1)*sizeof(WCHAR));
strncpyW(tempBuffer,lpszScheme,nMaxCmp);
tempBuffer[nMaxCmp]=0;
strlwrW(tempBuffer);
@@ -926,7 +929,7 @@
iScheme=INTERNET_SCHEME_MAILTO;
else if (nMaxCmp==strlenW(lpszRes) && !strncmpW(lpszRes, tempBuffer, nMaxCmp))
iScheme=INTERNET_SCHEME_RES;
- free(tempBuffer);
+ HeapFree(GetProcessHeap(),0,tempBuffer);
return iScheme;
}
@@ -1812,10 +1815,10 @@
INT len;
BOOL rc;
- len = lstrlenW(lpszUrl)+1;
+ len = WideCharToMultiByte(CP_ACP, 0, lpszUrl, -1, NULL, 0, NULL, NULL);
if (!(szUrl = (CHAR *)HeapAlloc(GetProcessHeap(), 0, len*sizeof(CHAR))))
return FALSE;
- WideCharToMultiByte(CP_ACP, -1, lpszUrl, -1, szUrl, len, NULL, NULL);
+ WideCharToMultiByte(CP_ACP, 0, lpszUrl, -1, szUrl, len, NULL, NULL);
rc = InternetCheckConnectionA((LPCSTR)szUrl, dwFlags, dwReserved);
HeapFree(GetProcessHeap(), 0, szUrl);
@@ -1868,8 +1871,6 @@
case INTERNET_SCHEME_HTTPS:
{
LPCSTR accept[2] = { "*/*", NULL };
- char *hostreq=(char*)malloc(strlen(hostName)+9);
- sprintf(hostreq, "Host: %s\r\n", hostName);
if(urlComponents.nPort == 0) {
if(urlComponents.nScheme == INTERNET_SCHEME_HTTP)
urlComponents.nPort = INTERNET_DEFAULT_HTTP_PORT;
@@ -1915,8 +1916,8 @@
{
HINTERNET rc = (HINTERNET)NULL;
- INT lenUrl = lstrlenW(lpszUrl)+1;
- INT lenHeaders = lstrlenW(lpszHeaders)+1;
+ INT lenUrl = WideCharToMultiByte(CP_ACP, 0, lpszUrl, -1, NULL, 0, NULL, NULL);
+ INT lenHeaders = WideCharToMultiByte(CP_ACP, 0, lpszHeaders, -1, NULL, 0, NULL, NULL);
CHAR *szUrl = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenUrl*sizeof(CHAR));
CHAR *szHeaders = (CHAR *)HeapAlloc(GetProcessHeap(), 0, lenHeaders*sizeof(CHAR));
@@ -1929,9 +1930,9 @@
return (HINTERNET)NULL;
}
- WideCharToMultiByte(CP_ACP, -1, lpszUrl, -1, szUrl, lenUrl,
+ WideCharToMultiByte(CP_ACP, 0, lpszUrl, -1, szUrl, lenUrl,
NULL, NULL);
- WideCharToMultiByte(CP_ACP, -1, lpszHeaders, -1, szHeaders, lenHeaders,
+ WideCharToMultiByte(CP_ACP, 0, lpszHeaders, -1, szHeaders, lenHeaders,
NULL, NULL);
rc = InternetOpenUrlA(hInternet, szUrl, szHeaders,
More information about the wine-patches
mailing list