mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-11 16:45:48 -04:00
Fix crashing
This commit is contained in:
parent
b23a91720e
commit
baae55f1eb
15
src/Certs.c
15
src/Certs.c
@ -316,8 +316,8 @@ static const LPCSTR const usage[] = {
|
||||
};
|
||||
|
||||
static BOOL BuildChain(struct X509CertContext* x509, HCERTSTORE store, PCCERT_CONTEXT* end_cert, PCCERT_CHAIN_CONTEXT* chain) {
|
||||
struct X509Cert* cert;
|
||||
CERT_CHAIN_PARA para = { 0 };
|
||||
struct X509Cert* cert = &x509->certs[0];
|
||||
CERT_CHAIN_PARA para = { 0 };
|
||||
int i;
|
||||
|
||||
BOOL ok = _CertAddEncodedCertificateToStore(store, X509_ASN_ENCODING, cert->data, cert->offset,
|
||||
@ -341,27 +341,24 @@ static BOOL BuildChain(struct X509CertContext* x509, HCERTSTORE store, PCCERT_CO
|
||||
}
|
||||
|
||||
int Certs_VerifyChain(struct X509CertContext* x509) {
|
||||
struct X509Cert* cert = &x509->certs[0];
|
||||
PCCERT_CHAIN_CONTEXT chain = NULL;
|
||||
PCCERT_CONTEXT end_cert = NULL;
|
||||
HCERTSTORE store;
|
||||
DWORD res = 200;
|
||||
BOOL ok;
|
||||
|
||||
if (!_CertOpenStore) return ERR_NOT_SUPPORTED;
|
||||
store = _CertOpenStore(CERT_STORE_PROV_MEMORY, 0, NULL, 0, NULL);
|
||||
if (!store) return ERR_NOT_SUPPORTED;
|
||||
|
||||
ok = BuildChain(x509, store, &end_cert, &chain);
|
||||
if (ok) {
|
||||
if (BuildChain(x509, store, &end_cert, &chain)) {
|
||||
res = chain->TrustStatus.dwErrorStatus;
|
||||
if (res) Platform_Log1("Cert validation failed: %h", &res);
|
||||
}
|
||||
|
||||
_CertFreeCertificateChain(chain);
|
||||
ok = _CertFreeCertificateContext(end_cert);
|
||||
ok = _CertCloseStore(store, 0);
|
||||
return ERR_NOT_SUPPORTED;
|
||||
_CertFreeCertificateContext(end_cert);
|
||||
_CertCloseStore(store, 0);
|
||||
return res;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user