Juan Lang : crypt32: Use public APIs to empty a store.
Module: wine Branch: master Commit: 6aa10439a9b0dcf28f02097f47b2a9f7ee01abc1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=6aa10439a9b0dcf28f02097f47... Author: Juan Lang <juan.lang(a)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;
participants (1)
-
Alexandre Julliard