From: Michael Green <bsmntoid@gmail.com> --- dlls/winhttp/session.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/dlls/winhttp/session.c b/dlls/winhttp/session.c index de34e7c862c..6348ec67b82 100644 --- a/dlls/winhttp/session.c +++ b/dlls/winhttp/session.c @@ -834,7 +834,6 @@ static BOOL request_query_option( struct object_header *hdr, DWORD option, void } case WINHTTP_OPTION_SERVER_CERT_CHAIN_CONTEXT: { - const CERT_CONTEXT *cert; const CERT_CHAIN_CONTEXT *cert_chain; char oid_server_auth[] = szOID_PKIX_KP_SERVER_AUTH; @@ -845,10 +844,8 @@ static BOOL request_query_option( struct object_header *hdr, DWORD option, void chainPara.RequestedUsage.Usage.cUsageIdentifier = 1; chainPara.RequestedUsage.Usage.rgpszUsageIdentifier = server_auth; - if (!validate_buffer( buffer, buflen, sizeof(cert) )) return FALSE; - if (!(cert = CertDuplicateCertificateContext( request -> server_cert ))) return FALSE; - - if (!CertGetCertificateChain(NULL, cert, NULL, NULL, &chainPara, 0, NULL, &cert_chain)) return FALSE; + if (!validate_buffer( buffer, buflen, sizeof(cert_chain) )) return FALSE; + if (!CertGetCertificateChain(NULL, request->server_cert, NULL, NULL, &chainPara, 0, NULL, &cert_chain)) return FALSE; *(CERT_CHAIN_CONTEXT **)buffer = (CERT_CHAIN_CONTEXT *)cert_chain; *buflen = sizeof(cert_chain); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10357