Juan Lang : wininet: Return error directly from netconn_verify_cert.
Alexandre Julliard
julliard at winehq.org
Wed Dec 16 09:41:29 CST 2009
Module: wine
Branch: master
Commit: bd5c5953f35ff9a164c93cfbfe77603b199a0b9f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=bd5c5953f35ff9a164c93cfbfe77603b199a0b9f
Author: Juan Lang <juan.lang at gmail.com>
Date: Mon Dec 14 15:58:44 2009 -0800
wininet: Return error directly from netconn_verify_cert.
---
dlls/wininet/netconnection.c | 22 +++++++++++++---------
1 files changed, 13 insertions(+), 9 deletions(-)
diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index 39ef464..f897570 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -210,7 +210,7 @@ static PCCERT_CONTEXT X509_to_cert_context(X509 *cert)
return ret;
}
-static BOOL netconn_verify_cert(PCCERT_CONTEXT cert, HCERTSTORE store,
+static DWORD netconn_verify_cert(PCCERT_CONTEXT cert, HCERTSTORE store,
WCHAR *server)
{
BOOL ret;
@@ -218,7 +218,7 @@ static BOOL netconn_verify_cert(PCCERT_CONTEXT cert, HCERTSTORE store,
PCCERT_CHAIN_CONTEXT chain;
char oid_server_auth[] = szOID_PKIX_KP_SERVER_AUTH;
char *server_auth[] = { oid_server_auth };
- DWORD err;
+ DWORD err = ERROR_SUCCESS;
TRACE("verifying %s\n", debugstr_w(server));
chainPara.RequestedUsage.Usage.cUsageIdentifier = 1;
@@ -245,8 +245,6 @@ static BOOL netconn_verify_cert(PCCERT_CONTEXT cert, HCERTSTORE store,
err = ERROR_INTERNET_SEC_INVALID_CERT;
else
err = ERROR_INTERNET_SEC_INVALID_CERT;
- INTERNET_SetLastError(err);
- ret = FALSE;
}
else
{
@@ -271,14 +269,12 @@ static BOOL netconn_verify_cert(PCCERT_CONTEXT cert, HCERTSTORE store,
err = ERROR_INTERNET_SEC_CERT_CN_INVALID;
else
err = ERROR_INTERNET_SEC_INVALID_CERT;
- INTERNET_SetLastError(err);
- ret = FALSE;
}
}
CertFreeCertificateChain(chain);
}
- TRACE("returning %d\n", ret);
- return ret;
+ TRACE("returning %08x\n", err);
+ return err;
}
static int netconn_secure_verify(int preverify_ok, X509_STORE_CTX *ctx)
@@ -320,7 +316,15 @@ static int netconn_secure_verify(int preverify_ok, X509_STORE_CTX *ctx)
}
if (!endCert) ret = FALSE;
if (ret)
- ret = netconn_verify_cert(endCert, store, server);
+ {
+ DWORD err = netconn_verify_cert(endCert, store, server);
+
+ if (err)
+ {
+ INTERNET_SetLastError(err);
+ ret = FALSE;
+ }
+ }
CertFreeCertificateContext(endCert);
CertCloseStore(store, 0);
}
More information about the wine-cvs
mailing list