crypt32: Fix working with critical section.
authorAlexander Morozov <amorozov@etersoft.ru>
Thu, 2 Sep 2010 12:13:19 +0000 (16:13 +0400)
committerAlexander Morozov <amorozov@etersoft.ru>
Thu, 2 Sep 2010 12:13:19 +0000 (16:13 +0400)
dlls/crypt32/main.c

index 2b04a89a25c20baac3d0e2432c7688ccaf7afa83..115c4d7c77bfac75bc0d13380718892dba6d9ac1 100644 (file)
@@ -89,6 +89,7 @@ static BOOL CRYPT_AlgIsSupported(HCRYPTPROV hProv, ALG_ID algID)
 {
     PROV_ENUMALGS provEnumalgs;
     DWORD size = sizeof(provEnumalgs);
+    BOOL ret = FALSE;
 
     /* This enumeration is not thread safe */
     EnterCriticalSection(&prov_param_cs);
@@ -97,12 +98,15 @@ static BOOL CRYPT_AlgIsSupported(HCRYPTPROV hProv, ALG_ID algID)
     {
         do {
             if (algID == provEnumalgs.aiAlgid)
-                return TRUE;
+            {
+                ret = TRUE;
+                break;
+            }
         } while (CryptGetProvParam(hProv, PP_ENUMALGS, (BYTE *)&provEnumalgs,
          &size, CRYPT_NEXT));
     }
     LeaveCriticalSection(&prov_param_cs);
-    return FALSE;
+    return ret;
 }
 
 HCRYPTPROV CRYPT_GetProvForAlgId(ALG_ID algID)