Juan Lang : wintrust: Return error directly from SOFTPUB_DecodeInnerContent .

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


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

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

wintrust: Return error directly from SOFTPUB_DecodeInnerContent.

---

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

diff --git a/dlls/wintrust/softpub.c b/dlls/wintrust/softpub.c
index a9f8f29..2524df3 100644
--- a/dlls/wintrust/softpub.c
+++ b/dlls/wintrust/softpub.c
@@ -216,56 +216,70 @@ static DWORD SOFTPUB_CreateStoreFromMessage(CRYPT_PROVIDER_DATA *data)
 static DWORD SOFTPUB_DecodeInnerContent(CRYPT_PROVIDER_DATA *data)
 {
     BOOL ret;
-    DWORD size;
+    DWORD size, err = ERROR_SUCCESS;
     LPSTR oid = NULL;
     LPBYTE buf = NULL;
 
     ret = CryptMsgGetParam(data->hMsg, CMSG_INNER_CONTENT_TYPE_PARAM, 0, NULL,
      &size);
     if (!ret)
+    {
+        err = GetLastError();
         goto error;
+    }
     oid = data->psPfns->pfnAlloc(size);
     if (!oid)
     {
-        SetLastError(ERROR_OUTOFMEMORY);
-        ret = FALSE;
+        err = ERROR_OUTOFMEMORY;
         goto error;
     }
     ret = CryptMsgGetParam(data->hMsg, CMSG_INNER_CONTENT_TYPE_PARAM, 0, oid,
      &size);
     if (!ret)
+    {
+        err = GetLastError();
         goto error;
+    }
     ret = CryptMsgGetParam(data->hMsg, CMSG_CONTENT_PARAM, 0, NULL, &size);
     if (!ret)
+    {
+        err = GetLastError();
         goto error;
+    }
     buf = data->psPfns->pfnAlloc(size);
     if (!buf)
     {
-        SetLastError(ERROR_OUTOFMEMORY);
-        ret = FALSE;
+        err = ERROR_OUTOFMEMORY;
         goto error;
     }
     ret = CryptMsgGetParam(data->hMsg, CMSG_CONTENT_PARAM, 0, buf, &size);
     if (!ret)
+    {
+        err = GetLastError();
         goto error;
+    }
     ret = CryptDecodeObject(data->dwEncoding, oid, buf, size, 0, NULL, &size);
     if (!ret)
+    {
+        err = GetLastError();
         goto error;
+    }
     data->u.pPDSip->psIndirectData = data->psPfns->pfnAlloc(size);
     if (!data->u.pPDSip->psIndirectData)
     {
-        SetLastError(ERROR_OUTOFMEMORY);
-        ret = FALSE;
+        err = ERROR_OUTOFMEMORY;
         goto error;
     }
     ret = CryptDecodeObject(data->dwEncoding, oid, buf, size, 0,
      data->u.pPDSip->psIndirectData, &size);
+    if (!ret)
+        err = GetLastError();
 
 error:
-    TRACE("returning %d\n", ret);
+    TRACE("returning %d\n", err);
     data->psPfns->pfnFree(oid);
     data->psPfns->pfnFree(buf);
-    return ret;
+    return err;
 }
 
 static BOOL SOFTPUB_LoadCertMessage(CRYPT_PROVIDER_DATA *data)
@@ -347,8 +361,8 @@ static DWORD SOFTPUB_LoadFileMessage(CRYPT_PROVIDER_DATA *data)
     err = SOFTPUB_CreateStoreFromMessage(data);
     if (err)
         goto error;
-    if (!SOFTPUB_DecodeInnerContent(data))
-        err = GetLastError();
+    err = SOFTPUB_DecodeInnerContent(data);
+
 error:
     return err;
 }
@@ -385,8 +399,7 @@ static DWORD SOFTPUB_LoadCatalogMessage(CRYPT_PROVIDER_DATA *data)
     err = SOFTPUB_CreateStoreFromMessage(data);
     if (err)
         goto error;
-    if (!SOFTPUB_DecodeInnerContent(data))
-        err = GetLastError();
+    err = SOFTPUB_DecodeInnerContent(data);
     /* FIXME: this loads the catalog file, but doesn't validate the member. */
 error:
     CloseHandle(catalog);




More information about the wine-cvs mailing list