Juan Lang : crypt32: Use public APIs to empty a store.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Aug 17 06:30:30 CDT 2007


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

Author: Juan Lang <juan.lang at gmail.com>
Date:   Thu Aug 16 10:43:35 2007 -0700

crypt32: Use public APIs to empty a store.

---

 dlls/crypt32/store.c |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/dlls/crypt32/store.c b/dlls/crypt32/store.c
index 07b5448..14a6631 100644
--- a/dlls/crypt32/store.c
+++ b/dlls/crypt32/store.c
@@ -317,10 +317,21 @@ static BOOL CRYPT_MemDeleteCrl(PWINECRYPT_CERTSTORE store, void *pCrlContext)
     return TRUE;
 }
 
-static void CRYPT_MemEmptyStore(PWINE_MEMSTORE store)
+static void CRYPT_EmptyStore(HCERTSTORE store)
 {
-    ContextList_Empty(store->certs);
-    ContextList_Empty(store->crls);
+    PCCERT_CONTEXT cert;
+    PCCRL_CONTEXT crl;
+
+    do {
+        cert = CertEnumCertificatesInStore(store, NULL);
+        if (cert)
+            CertDeleteCertificateFromStore(cert);
+    } while (cert);
+    do {
+        crl = CertEnumCRLsInStore(store, NULL);
+        if (crl)
+            CertDeleteCRLFromStore(crl);
+    } while (crl);
 }
 
 static void WINAPI CRYPT_MemCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
@@ -1359,7 +1370,7 @@ static BOOL WINAPI CRYPT_RegControl(HCERTSTORE hCertStore, DWORD dwFlags,
     {
     case CERT_STORE_CTRL_RESYNC:
         CRYPT_RegFlushStore(store, FALSE);
-        CRYPT_MemEmptyStore((PWINE_MEMSTORE)store->memStore);
+        CRYPT_EmptyStore(store->memStore);
         CRYPT_RegReadFromReg(store);
         ret = TRUE;
         break;
@@ -1758,7 +1769,7 @@ static BOOL WINAPI CRYPT_FileControl(HCERTSTORE hCertStore, DWORD dwFlags,
     switch (dwCtrlType)
     {
     case CERT_STORE_CTRL_RESYNC:
-        CRYPT_MemEmptyStore((PWINE_MEMSTORE)store->memStore);
+        CRYPT_EmptyStore(store->memStore);
         CRYPT_ReadSerializedFile(store->file, store);
         ret = TRUE;
         break;




More information about the wine-cvs mailing list