Juan Lang : wintrust: Return error directly from SOFTPUB_LoadCertMessage.

Alexandre Julliard julliard at winehq.org
Thu Jan 28 11:15:35 CST 2010


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Wed Jan 27 10:42:34 2010 -0800

wintrust: Return error directly from SOFTPUB_LoadCertMessage.

---

 dlls/wintrust/softpub.c |   34 +++++++++++++---------------------
 1 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index 2524df3..bf866c3 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -282,9 +282,9 @@ error:
     return err;
 }
 
-static BOOL SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
+static DWORD SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
 {
-    BOOL ret;
+    DWORD err;
 
     if (data->pWintrustData->u.pCert &&
      WVT_IS_CBSTRUCT_GT_MEMBEROFFSET(WINTRUST_CERT_INFO,
@@ -294,6 +294,7 @@ static BOOL SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
         {
             CRYPT_PROVIDER_SGNR signer = { sizeof(signer), { 0 } };
             DWORD i;
+            BOOL ret;
 
             /* Add a signer with nothing but the time to verify, so we can
              * add a cert to it
@@ -321,19 +322,18 @@ static BOOL SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
                             ret = data->psPfns->pfnAddStore2Chain(data,
                              data->pWintrustData->u.pCert->pahStores[i]);
             }
+            if (!ret)
+                err = GetLastError();
         }
         else
         {
             /* Do nothing!?  See the tests */
-            ret = TRUE;
+            err = ERROR_SUCCESS;
         }
     }
     else
-    {
-        SetLastError(ERROR_INVALID_PARAMETER);
-        ret = FALSE;
-    }
-    return ret;
+        err = ERROR_INVALID_PARAMETER;
+    return err;
 }
 
 static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
@@ -408,7 +408,6 @@ error:
 
 HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
 {
-    BOOL ret = TRUE;
     DWORD err = ERROR_SUCCESS;
 
     TRACE("(%p)\n", data);
@@ -419,7 +418,7 @@ HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
     switch (data->pWintrustData->dwUnionChoice)
     {
     case WTD_CHOICE_CERT:
-        ret = SOFTPUB_LoadCertMessage(data);
+        err = SOFTPUB_LoadCertMessage(data);
         break;
     case WTD_CHOICE_FILE:
         err = SOFTPUB_LoadFileMessage(data);
@@ -429,21 +428,14 @@ HRESULT WINAPI SoftpubLoadMessage(CRYPT_PROVIDER_DATA *data)
         break;
     default:
         FIXME("unimplemented for %d\n", data->pWintrustData->dwUnionChoice);
-        SetLastError(ERROR_INVALID_PARAMETER);
-        ret = FALSE;
+        err = ERROR_INVALID_PARAMETER;
     }
 
-    if (!ret)
-        data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] =
-         GetLastError();
-    else if (err)
-    {
+    if (err)
         data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV] = err;
-        ret = FALSE;
-    }
-    TRACE("returning %d (%08x)\n", ret ? S_OK : S_FALSE,
+    TRACE("returning %d (%08x)\n", !err ? S_OK : S_FALSE,
      data->padwTrustStepErrors[TRUSTERROR_STEP_FINAL_OBJPROV]);
-    return ret ? S_OK : S_FALSE;
+    return !err ? S_OK : S_FALSE;
 }
 
 static CMSG_SIGNER_INFO *WINTRUST_GetSigner(CRYPT_PROVIDER_DATA *data,




More information about the wine-cvs mailing list