Author: winesync
Date: Mon Jan 14 15:51:35 2008
New Revision: 31775
URL:
http://svn.reactos.org/svn/reactos?rev=31775&view=rev
Log:
Autosyncing with Wine HEAD
Modified:
trunk/reactos/dll/win32/cryptnet/cryptnet.rbuild
trunk/reactos/dll/win32/cryptnet/cryptnet_main.c
Modified: trunk/reactos/dll/win32/cryptnet/cryptnet.rbuild
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/cryptnet/cryptne…
==============================================================================
--- trunk/reactos/dll/win32/cryptnet/cryptnet.rbuild (original)
+++ trunk/reactos/dll/win32/cryptnet/cryptnet.rbuild Mon Jan 14 15:51:35 2008
@@ -1,5 +1,6 @@
<?xml version="1.0"?>
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
+<group>
<module name="cryptnet" type="win32dll"
baseaddress="${BASEADDRESS_CRYPTNET}" installbase="system32"
installname="cryptnet.dll" allowwarnings="true">
<autoregister infsection="OleControlDlls"
type="DllRegisterServer" />
<importlibrary definition="cryptnet.spec.def" />
@@ -16,3 +17,4 @@
<file>cryptnet_main.c</file>
<file>cryptnet.spec</file>
</module>
+</group>
Modified: trunk/reactos/dll/win32/cryptnet/cryptnet_main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/cryptnet/cryptne…
==============================================================================
--- trunk/reactos/dll/win32/cryptnet/cryptnet_main.c (original)
+++ trunk/reactos/dll/win32/cryptnet/cryptnet_main.c Mon Jan 14 15:51:35 2008
@@ -476,18 +476,16 @@
memset(components, 0, sizeof(*components));
components->dwStructSize = sizeof(*components);
- components->dwHostNameLength = 1;
- components->dwUrlPathLength = 1;
+ components->lpszHostName = CryptMemAlloc(MAX_PATH * sizeof(WCHAR));
+ components->dwHostNameLength = MAX_PATH;
+ components->lpszUrlPath = CryptMemAlloc(MAX_PATH * 2 * sizeof(WCHAR));
+ components->dwUrlPathLength = 2 * MAX_PATH;
ret = InternetCrackUrlW(pszURL, 0, ICU_DECODE, components);
if (ret)
{
- LPWSTR hostname = strndupW(components->lpszHostName,
- components->dwHostNameLength);
- LPWSTR path = strndupW(components->lpszUrlPath,
- components->dwUrlPathLength);
-
- components->lpszHostName = hostname;
- components->lpszUrlPath = path;
+ if ((components->dwUrlPathLength == 2 * MAX_PATH - 1) ||
+ (components->dwHostNameLength == MAX_PATH - 1))
+ FIXME("Buffers are too small\n");
switch (components->nScheme)
{
case INTERNET_SCHEME_FTP:
@@ -873,11 +871,15 @@
*ppfnFreeObject = CRYPT_FreeBlob;
*ppvFreeContext = NULL;
- components.dwUrlPathLength = 1;
+ components.lpszUrlPath = CryptMemAlloc(MAX_PATH * 2 * sizeof(WCHAR));
+ components.dwUrlPathLength = 2 * MAX_PATH;
ret = InternetCrackUrlW(pszURL, 0, ICU_DECODE, &components);
if (ret)
{
LPWSTR path;
+
+ if (components.dwUrlPathLength == 2 * MAX_PATH - 1)
+ FIXME("Buffers are too small\n");
/* 3 == lstrlenW(L"c:") + 1 */
path = CryptMemAlloc((components.dwUrlPathLength + 3) * sizeof(WCHAR));
@@ -932,6 +934,7 @@
CryptMemFree(path);
}
}
+ CryptMemFree(components.lpszUrlPath);
return ret;
}
@@ -952,7 +955,7 @@
*pFunc = NULL;
*phFunc = 0;
components.dwSchemeLength = 1;
- ret = InternetCrackUrlW(pszURL, 0, ICU_DECODE, &components);
+ ret = InternetCrackUrlW(pszURL, 0, 0, &components);
if (ret)
{
/* Microsoft always uses CryptInitOIDFunctionSet/
@@ -1136,7 +1139,7 @@
ret = CryptQueryObject(CERT_QUERY_OBJECT_BLOB, &pObject->rgBlob[0],
CERT_QUERY_CONTENT_FLAG_PKCS7_SIGNED |
CERT_QUERY_CONTENT_FLAG_PKCS7_UNSIGNED, CERT_QUERY_FORMAT_FLAG_BINARY,
- 0, NULL, NULL, NULL, (HCERTSTORE *)ppvContext, NULL, NULL);
+ 0, NULL, NULL, NULL, ppvContext, NULL, NULL);
else
{
FIXME("multiple messages unimplemented\n");