Commit dd26bee1 authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

crypt32: Fix duplicating a NULL CTL context.

parent acc9d81f
...@@ -455,7 +455,8 @@ end: ...@@ -455,7 +455,8 @@ end:
PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext) PCCTL_CONTEXT WINAPI CertDuplicateCTLContext(PCCTL_CONTEXT pCtlContext)
{ {
TRACE("(%p)\n", pCtlContext); TRACE("(%p)\n", pCtlContext);
Context_AddRef((void *)pCtlContext, sizeof(CTL_CONTEXT)); if (pCtlContext)
Context_AddRef((void *)pCtlContext, sizeof(CTL_CONTEXT));
return pCtlContext; return pCtlContext;
} }
......
...@@ -187,6 +187,21 @@ static void testCreateCTL(void) ...@@ -187,6 +187,21 @@ static void testCreateCTL(void)
CertFreeCTLContext(ctl); CertFreeCTLContext(ctl);
} }
static void testDupCTL(void)
{
PCCTL_CONTEXT context, dupContext;
context = CertDuplicateCTLContext(NULL);
ok(context == NULL, "expected NULL\n");
context = CertCreateCTLContext(X509_ASN_ENCODING,
signedCTLWithCTLInnerContent, sizeof(signedCTLWithCTLInnerContent));
dupContext = CertDuplicateCTLContext(context);
ok(dupContext != NULL, "expected a context\n");
ok(dupContext == context, "expected identical context addresses\n");
CertFreeCTLContext(dupContext);
CertFreeCTLContext(context);
}
static void checkHash(const BYTE *data, DWORD dataLen, ALG_ID algID, static void checkHash(const BYTE *data, DWORD dataLen, ALG_ID algID,
PCCTL_CONTEXT context, DWORD propID) PCCTL_CONTEXT context, DWORD propID)
{ {
...@@ -444,6 +459,7 @@ static void testAddCTLToStore(void) ...@@ -444,6 +459,7 @@ static void testAddCTLToStore(void)
START_TEST(ctl) START_TEST(ctl)
{ {
testCreateCTL(); testCreateCTL();
testDupCTL();
testCTLProperties(); testCTLProperties();
testAddCTLToStore(); testAddCTLToStore();
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment