Rob Shearman : wintrust: Check that provider functions are not NULL before using them.

Alexandre Julliard julliard at winehq.org
Thu Apr 24 06:23:24 CDT 2008


Module: wine
Branch: master
Commit: 91d5844f76df3dccd2537042538a7970c8642a05
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=91d5844f76df3dccd2537042538a7970c8642a05

Author: Rob Shearman <rob at codeweavers.com>
Date:   Wed Apr 23 20:10:14 2008 +0100

wintrust: Check that provider functions are not NULL before using them.

---

 dlls/wintrust/wintrust_main.c |   39 ++++++++++++++++++++++++++-------------
 1 files changed, 26 insertions(+), 13 deletions(-)

diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c
index 47c0865..f7fc3ca 100644
--- a/dlls/wintrust/wintrust_main.c
+++ b/dlls/wintrust/wintrust_main.c
@@ -111,19 +111,32 @@ static LONG WINTRUST_DefaultVerify(HWND hwnd, GUID *actionID,
     provData->pgActionID = actionID;
     WintrustGetRegPolicyFlags(&provData->dwRegPolicySettings);
 
-    err = provData->psPfns->pfnInitialize(provData);
-    if (err)
-        goto done;
-    err = provData->psPfns->pfnObjectTrust(provData);
-    if (err)
-        goto done;
-    err = provData->psPfns->pfnSignatureTrust(provData);
-    if (err)
-        goto done;
-    err = provData->psPfns->pfnCertificateTrust(provData);
-    if (err)
-        goto done;
-    err = provData->psPfns->pfnFinalPolicy(provData);
+    if (provData->psPfns->pfnInitialize)
+    {
+        err = provData->psPfns->pfnInitialize(provData);
+        if (err)
+            goto done;
+    }
+    if (provData->psPfns->pfnObjectTrust)
+    {
+        err = provData->psPfns->pfnObjectTrust(provData);
+        if (err)
+            goto done;
+    }
+    if (provData->psPfns->pfnSignatureTrust)
+    {
+        err = provData->psPfns->pfnSignatureTrust(provData);
+        if (err)
+            goto done;
+    }
+    if (provData->psPfns->pfnCertificateTrust)
+    {
+        err = provData->psPfns->pfnCertificateTrust(provData);
+        if (err)
+            goto done;
+    }
+    if (provData->psPfns->pfnFinalPolicy)
+        err = provData->psPfns->pfnFinalPolicy(provData);
     goto done;
 
 oom:




More information about the wine-cvs mailing list