wintrust(2/6): Test and correct alloc and free functions in WintrustLoadFunctionPointers

Juan Lang juan.lang at gmail.com
Fri Aug 24 17:23:39 CDT 2007


--Juan
-------------- next part --------------
From 7fe017bfb0346c3e83dc53bf284aa826207f2ac5 Mon Sep 17 00:00:00 2001
From: Juan Lang <juan.lang at gmail.com>
Date: Fri, 24 Aug 2007 15:07:41 -0700
Subject: [PATCH] Test and correct alloc and free functions in WintrustLoadFunctionPointers
---
 dlls/wintrust/register.c       |   14 ++++++++++++--
 dlls/wintrust/tests/register.c |    2 ++
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/wintrust/register.c b/dlls/wintrust/register.c
index d16b186..517359f 100644
--- a/dlls/wintrust/register.c
+++ b/dlls/wintrust/register.c
@@ -812,6 +812,16 @@ error_close_key:
     return Func;
 }
 
+static void * WINAPI WINTRUST_Alloc(DWORD cb)
+{
+    return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, cb);
+}
+
+static void WINAPI WINTRUST_Free(void *p)
+{
+    HeapFree(GetProcessHeap(), 0, p);
+}
+
 /***********************************************************************
  *              WintrustLoadFunctionPointers (WINTRUST.@)
  */
@@ -834,8 +844,8 @@ BOOL WINAPI WintrustLoadFunctionPointers
     WINTRUST_Guid2Wstr( pgActionID, GuidString);
 
     /* Get the function pointers from the registry, where applicable */
-    pPfns->pfnAlloc = NULL;
-    pPfns->pfnFree = NULL;
+    pPfns->pfnAlloc = WINTRUST_Alloc;
+    pPfns->pfnFree = WINTRUST_Free;
     pPfns->pfnAddStore2Chain = NULL;
     pPfns->pfnAddSgnr2Chain = NULL;
     pPfns->pfnAddCert2Chain = NULL;
diff --git a/dlls/wintrust/tests/register.c b/dlls/wintrust/tests/register.c
index 6e6ed20..f4aef92 100644
--- a/dlls/wintrust/tests/register.c
+++ b/dlls/wintrust/tests/register.c
@@ -284,6 +284,8 @@ static void test_LoadFunctionPointers(vo
     funcs.cbStruct = sizeof(funcs);
     ret = pWintrustLoadFunctionPointers(&action, &funcs);
     ok(ret, "WintrustLoadFunctionPointers failed: %d\n", GetLastError());
+    ok(funcs.pfnAlloc != NULL, "Expected a pointer\n");
+    ok(funcs.pfnFree != NULL, "Expected a pointer\n");
 }
 
 static void test_RegPolicyFlags(void)
-- 
1.4.1


More information about the wine-patches mailing list