Jacek Caban : crypt32: Always return TRUE from CertFreeCTLContext.

Alexandre Julliard julliard at winehq.org
Fri Oct 18 14:24:16 CDT 2013


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Oct 18 10:50:23 2013 +0200

crypt32: Always return TRUE from CertFreeCTLContext.

---

 dlls/crypt32/context.c         |    6 +-----
 dlls/crypt32/crypt32_private.h |    4 +---
 dlls/crypt32/ctl.c             |    6 ++----
 dlls/crypt32/tests/ctl.c       |   12 ++++++++++--
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/dlls/crypt32/context.c b/dlls/crypt32/context.c
index 4809eea..d836b6f 100644
--- a/dlls/crypt32/context.c
+++ b/dlls/crypt32/context.c
@@ -74,14 +74,11 @@ void Context_AddRef(context_t *context)
     TRACE("(%p) ref=%d\n", context, context->ref);
 }
 
-BOOL Context_Release(context_t *context)
+void Context_Release(context_t *context)
 {
-    BOOL ret = TRUE;
-
     if (context->ref <= 0)
     {
         ERR("%p's ref count is %d\n", context, context->ref);
-        return FALSE;
     }
     if (InterlockedDecrement(&context->ref) == 0)
     {
@@ -97,7 +94,6 @@ BOOL Context_Release(context_t *context)
     }
     else
         TRACE("%p's ref count is %d\n", context, context->ref);
-    return ret;
 }
 
 void Context_CopyProperties(const void *to, const void *from)
diff --git a/dlls/crypt32/crypt32_private.h b/dlls/crypt32/crypt32_private.h
index dbb9ee5..50eb9e6 100644
--- a/dlls/crypt32/crypt32_private.h
+++ b/dlls/crypt32/crypt32_private.h
@@ -403,10 +403,8 @@ void Context_AddRef(context_t*) DECLSPEC_HIDDEN;
 
 /* Decrements context's ref count.  If context is a link context, releases its
  * linked context as well.
- * If a data context has its ref count reach 0, calls dataContextFree on it.
- * Returns FALSE if the reference count is <= 0 when called.
  */
-BOOL Context_Release(context_t *context) DECLSPEC_HIDDEN;
+void Context_Release(context_t *context) DECLSPEC_HIDDEN;
 
 /**
  *  Context property list functions
diff --git a/dlls/crypt32/ctl.c b/dlls/crypt32/ctl.c
index 3717b7d..1f95fdf 100644
--- a/dlls/crypt32/ctl.c
+++ b/dlls/crypt32/ctl.c
@@ -500,13 +500,11 @@ PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext)
 
 BOOL WINAPI CertFreeCTLContext(PCCTL_CONTEXT pCTLContext)
 {
-    BOOL ret = TRUE;
-
     TRACE("(%p)\n", pCTLContext);
 
     if (pCTLContext)
-        ret = Context_Release(&ctl_from_ptr(pCTLContext)->base);
-    return ret;
+        Context_Release(&ctl_from_ptr(pCTLContext)->base);
+    return TRUE;
 }
 
 DWORD WINAPI CertEnumCTLContextProperties(PCCTL_CONTEXT pCTLContext,
diff --git a/dlls/crypt32/tests/ctl.c b/dlls/crypt32/tests/ctl.c
index f292a4c..55bbc6e 100644
--- a/dlls/crypt32/tests/ctl.c
+++ b/dlls/crypt32/tests/ctl.c
@@ -190,6 +190,7 @@ static void testCreateCTL(void)
 static void testDupCTL(void)
 {
     PCCTL_CONTEXT context, dupContext;
+    BOOL res;
 
     context = CertDuplicateCTLContext(NULL);
     ok(context == NULL, "expected NULL\n");
@@ -198,8 +199,15 @@ static void testDupCTL(void)
     dupContext = CertDuplicateCTLContext(context);
     ok(dupContext != NULL, "expected a context\n");
     ok(dupContext == context, "expected identical context addresses\n");
-    CertFreeCTLContext(dupContext);
-    CertFreeCTLContext(context);
+
+    res = CertFreeCTLContext(dupContext);
+    ok(res, "CertFreeCTLContext failed\n");
+
+    res = CertFreeCTLContext(context);
+    ok(res, "CertFreeCTLContext failed\n");
+
+    res = CertFreeCTLContext(NULL);
+    ok(res, "CertFreeCTLContext failed\n");
 }
 
 static void checkHash(const BYTE *data, DWORD dataLen, ALG_ID algID,




More information about the wine-cvs mailing list