Juan Lang : wintrust: Don't assume dwStateAction is set in WINTRUST_DATA.

Alexandre Julliard julliard at winehq.org
Thu Sep 18 07:55:59 CDT 2008


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Sep 17 16:15:34 2008 -0700

wintrust: Don't assume dwStateAction is set in WINTRUST_DATA.

---

 dlls/wintrust/wintrust_main.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/dlls/wintrust/wintrust_main.c b/dlls/wintrust/wintrust_main.c
index ed6a8ed..e7b9af4 100644
--- a/dlls/wintrust/wintrust_main.c
+++ b/dlls/wintrust/wintrust_main.c
@@ -381,6 +381,8 @@ LONG WINAPI WinVerifyTrust( HWND hwnd, GUID *ActionID, LPVOID ActionData )
         err = WINTRUST_PublishedSoftware(hwnd, ActionID, ActionData);
     else
     {
+        DWORD stateAction;
+
         /* Check known actions to warn of possible problems */
         if (!IsEqualGUID(ActionID, &unknown) &&
          !IsEqualGUID(ActionID, &generic_verify_v2) &&
@@ -388,7 +390,14 @@ LONG WINAPI WinVerifyTrust( HWND hwnd, GUID *ActionID, LPVOID ActionData )
          !IsEqualGUID(ActionID, &generic_chain_verify))
             WARN("unknown action %s, default behavior may not be right\n",
              debugstr_guid(ActionID));
-        switch (actionData->dwStateAction)
+        if (WVT_ISINSTRUCT(WINTRUST_DATA, actionData->cbStruct, dwStateAction))
+            stateAction = actionData->dwStateAction;
+        else
+        {
+            TRACE("no dwStateAction, assuming WTD_STATEACTION_IGNORE\n");
+            stateAction = WTD_STATEACTION_IGNORE;
+        }
+        switch (stateAction)
         {
         case WTD_STATEACTION_IGNORE:
             err = WINTRUST_DefaultVerifyAndClose(hwnd, ActionID, ActionData);




More information about the wine-cvs mailing list