crypt32: Validate add disposition before checking source certificate's properties.
This commit is contained in:
parent
0dfb0299f6
commit
76fc5c8bc5
|
@ -855,7 +855,16 @@ BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore,
|
||||||
TRACE("(%p, %p, %08x, %p)\n", hCertStore, pCertContext,
|
TRACE("(%p, %p, %08x, %p)\n", hCertStore, pCertContext,
|
||||||
dwAddDisposition, ppStoreContext);
|
dwAddDisposition, ppStoreContext);
|
||||||
|
|
||||||
if (dwAddDisposition != CERT_STORE_ADD_ALWAYS)
|
switch (dwAddDisposition)
|
||||||
|
{
|
||||||
|
case CERT_STORE_ADD_ALWAYS:
|
||||||
|
break;
|
||||||
|
case CERT_STORE_ADD_NEW:
|
||||||
|
case CERT_STORE_ADD_REPLACE_EXISTING:
|
||||||
|
case CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES:
|
||||||
|
case CERT_STORE_ADD_USE_EXISTING:
|
||||||
|
case CERT_STORE_ADD_NEWER:
|
||||||
|
case CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES:
|
||||||
{
|
{
|
||||||
BYTE hashToAdd[20];
|
BYTE hashToAdd[20];
|
||||||
DWORD size = sizeof(hashToAdd);
|
DWORD size = sizeof(hashToAdd);
|
||||||
|
@ -870,6 +879,12 @@ BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore,
|
||||||
pCertContext->dwCertEncodingType, 0, CERT_FIND_SHA1_HASH, &blob,
|
pCertContext->dwCertEncodingType, 0, CERT_FIND_SHA1_HASH, &blob,
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
FIXME("Unimplemented add disposition %d\n", dwAddDisposition);
|
||||||
|
SetLastError(E_INVALIDARG);
|
||||||
|
ret = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (dwAddDisposition)
|
switch (dwAddDisposition)
|
||||||
|
@ -940,10 +955,6 @@ BOOL WINAPI CertAddCertificateContextToStore(HCERTSTORE hCertStore,
|
||||||
else
|
else
|
||||||
toAdd = CertDuplicateCertificateContext(pCertContext);
|
toAdd = CertDuplicateCertificateContext(pCertContext);
|
||||||
break;
|
break;
|
||||||
default:
|
|
||||||
FIXME("Unimplemented add disposition %d\n", dwAddDisposition);
|
|
||||||
SetLastError(E_INVALIDARG);
|
|
||||||
ret = FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (toAdd)
|
if (toAdd)
|
||||||
|
|
Loading…
Reference in New Issue