Juan Lang : crypt32: Use consistent error checking.

Alexandre Julliard julliard at winehq.org
Fri Nov 2 08:10:28 CDT 2007


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Nov  1 20:20:33 2007 -0700

crypt32: Use consistent error checking.

---

 dlls/crypt32/str.c |   44 ++++++++++++++++++++++----------------------
 1 files changed, 22 insertions(+), 22 deletions(-)

diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c
index a7de4df..8e19dc8 100644
--- a/dlls/crypt32/str.c
+++ b/dlls/crypt32/str.c
@@ -549,10 +549,10 @@ static void CRYPT_KeynameKeeperFromTokenW(struct KeynameKeeper *keeper,
     TRACE("Keyname is %s\n", debugstr_w(keeper->keyName));
 }
 
-static DWORD CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token,
+static BOOL CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token,
  LPCWSTR *ppszError)
 {
-    DWORD ret = ERROR_SUCCESS;
+    BOOL ret = TRUE;
 
     while (*str && isspaceW(*str))
         str++;
@@ -568,7 +568,8 @@ static DWORD CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token,
             TRACE("missing equals char at %s\n", debugstr_w(token->start));
             if (ppszError)
                 *ppszError = token->start;
-            ret = CRYPT_E_INVALID_X500_STRING;
+            SetLastError(CRYPT_E_INVALID_X500_STRING);
+            ret = FALSE;
         }
     }
     else
@@ -577,10 +578,10 @@ static DWORD CRYPT_GetNextKeyW(LPCWSTR str, struct X500TokenW *token,
 }
 
 /* Assumes separators are characters in the 0-255 range */
-static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators,
+static BOOL CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators,
  struct X500TokenW *token, LPCWSTR *ppszError)
 {
-    DWORD ret = ERROR_SUCCESS;
+    BOOL ret = TRUE;
 
     TRACE("(%s, %s, %p, %p)\n", debugstr_w(str), debugstr_w(separators), token,
      ppszError);
@@ -594,7 +595,7 @@ static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators,
         {
             token->end = NULL;
             str++;
-            while (!token->end && !ret)
+            while (!token->end && ret)
             {
                 while (*str && *str != '"')
                     str++;
@@ -610,7 +611,8 @@ static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators,
                     TRACE("unterminated quote at %s\n", debugstr_w(str));
                     if (ppszError)
                         *ppszError = str;
-                    ret = CRYPT_E_INVALID_X500_STRING;
+                    SetLastError(CRYPT_E_INVALID_X500_STRING);
+                    ret = FALSE;
                 }
             }
         }
@@ -630,7 +632,8 @@ static DWORD CRYPT_GetNextValueW(LPCWSTR str, DWORD dwFlags, LPCWSTR separators,
         TRACE("missing value at %s\n", debugstr_w(str));
         if (ppszError)
             *ppszError = str;
-        ret = CRYPT_E_INVALID_X500_STRING;
+        SetLastError(CRYPT_E_INVALID_X500_STRING);
+        ret = FALSE;
     }
     return ret;
 }
@@ -765,7 +768,7 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
     CERT_NAME_INFO info = { 0, NULL };
     LPCWSTR str;
     struct KeynameKeeper keeper;
-    DWORD i, error = ERROR_SUCCESS;
+    DWORD i;
     BOOL ret = TRUE;
 
     TRACE("(%08x, %s, %08x, %p, %p, %p, %p)\n", dwCertEncodingType,
@@ -774,12 +777,12 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
 
     CRYPT_InitializeKeynameKeeper(&keeper);
     str = pszX500;
-    while (str && *str && !error && ret)
+    while (str && *str && ret)
     {
         struct X500TokenW token;
 
-        error = CRYPT_GetNextKeyW(str, &token, ppszError);
-        if (!error && token.start)
+        ret = CRYPT_GetNextKeyW(str, &token, ppszError);
+        if (ret && token.start)
         {
             PCCRYPT_OID_INFO keyOID;
 
@@ -790,7 +793,8 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
             {
                 if (ppszError)
                     *ppszError = token.start;
-                error = CRYPT_E_INVALID_X500_STRING;
+                SetLastError(CRYPT_E_INVALID_X500_STRING);
+                ret = FALSE;
             }
             else
             {
@@ -801,7 +805,8 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
                 {
                     if (ppszError)
                         *ppszError = str;
-                    error = CRYPT_E_INVALID_X500_STRING;
+                    SetLastError(CRYPT_E_INVALID_X500_STRING);
+                    ret = FALSE;
                 }
                 else
                 {
@@ -820,9 +825,9 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
                         sep = crlfSep;
                     else
                         sep = allSeps;
-                    error = CRYPT_GetNextValueW(str, dwStrType, sep, &token,
+                    ret = CRYPT_GetNextValueW(str, dwStrType, sep, &token,
                      ppszError);
-                    if (!error)
+                    if (ret)
                     {
                         str = token.end;
                         ret = CRYPT_ValueToRDN(dwCertEncodingType, &info,
@@ -833,18 +838,13 @@ BOOL WINAPI CertStrToNameW(DWORD dwCertEncodingType, LPCWSTR pszX500,
         }
     }
     CRYPT_FreeKeynameKeeper(&keeper);
-    if (!error)
+    if (ret)
     {
         if (ppszError)
             *ppszError = NULL;
         ret = CryptEncodeObjectEx(dwCertEncodingType, X509_NAME, &info,
          0, NULL, pbEncoded, pcbEncoded);
     }
-    else
-    {
-        SetLastError(error);
-        ret = FALSE;
-    }
     for (i = 0; i < info.cRDN; i++)
     {
         DWORD j;




More information about the wine-cvs mailing list