Module: wine Branch: master Commit: 6aa10439a9b0dcf28f02097f47b2a9f7ee01abc1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6aa10439a9b0dcf28f02097f47...
Author: Juan Lang juan.lang@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;