Juan Lang : wintrust: Use helper function to allocate CRYPT_PROVIDER_DATA.
Alexandre Julliard
julliard at winehq.org
Tue Sep 23 09:28:20 CDT 2008
Module: wine
Branch: master
Commit: a74aab75166d57b6be7f54d157bedcf3ba8df2d0
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a74aab75166d57b6be7f54d157bedcf3ba8df2d0
Author: Juan Lang <juan.lang at gmail.com>
Date: Mon Sep 22 13:18:16 2008 -0700
wintrust: Use helper function to allocate CRYPT_PROVIDER_DATA.
---
dlls/wintrust/wintrust_main.c | 37 ++++++++++++++++++++++++++++---------
1 files changed, 28 insertions(+), 9 deletions(-)
diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c
index 84bd2aa..9da584c 100644
--- a/dlls/wintrust/wintrust_main.c
+++ b/dlls/wintrust/wintrust_main.c
@@ -88,15 +88,9 @@ static DWORD WINTRUST_ExecuteSteps(const struct wintrust_step *steps,
return err;
}
-static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
- WINTRUST_DATA *data)
+static CRYPT_PROVIDER_DATA *WINTRUST_AllocateProviderData(void)
{
- DWORD err = ERROR_SUCCESS, numSteps = 0;
CRYPT_PROVIDER_DATA *provData;
- BOOL ret;
- struct wintrust_step verifySteps[5];
-
- TRACE("(%p, %s, %p)\n", hwnd, debugstr_guid(actionID), data);
provData = WINTRUST_Alloc(sizeof(CRYPT_PROVIDER_DATA));
if (!provData)
@@ -118,6 +112,33 @@ static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
if (!provData->psPfns)
goto oom;
provData->psPfns->cbStruct = sizeof(CRYPT_PROVIDER_FUNCTIONS);
+ return provData;
+
+oom:
+ if (provData)
+ {
+ WINTRUST_Free(provData->padwTrustStepErrors);
+ WINTRUST_Free(provData->u.pPDSip);
+ WINTRUST_Free(provData->psPfns);
+ WINTRUST_Free(provData);
+ }
+ return NULL;
+}
+
+static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
+ WINTRUST_DATA *data)
+{
+ DWORD err = ERROR_SUCCESS, numSteps = 0;
+ CRYPT_PROVIDER_DATA *provData;
+ BOOL ret;
+ struct wintrust_step verifySteps[5];
+
+ TRACE("(%p, %s, %p)\n", hwnd, debugstr_guid(actionID), data);
+
+ provData = WINTRUST_AllocateProviderData();
+ if (!provData)
+ return ERROR_OUTOFMEMORY;
+
ret = WintrustLoadFunctionPointers(actionID, provData->psPfns);
if (!ret)
{
@@ -162,8 +183,6 @@ static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
err = WINTRUST_ExecuteSteps(verifySteps, numSteps, provData);
goto done;
-oom:
- err = ERROR_OUTOFMEMORY;
error:
if (provData)
{
More information about the wine-cvs
mailing list