Module: wine Branch: master Commit: 91d5844f76df3dccd2537042538a7970c8642a05 URL: http://source.winehq.org/git/wine.git/?a=commit;h=91d5844f76df3dccd253704253...
Author: Rob Shearman rob@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: