Fix crashing

This commit is contained in:
UnknownShadow200 2025-07-07 22:56:36 +10:00
parent b23a91720e
commit baae55f1eb

View File

@ -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