[Python-checkins] [3.10] Revert "[3.10] gh-107077: Raise SSLCertVerificationError even if the error is set via SSL_ERROR_SYSCALL (GH-107586) (#107589)" (#107602)

pablogsal webhook-mailer at python.org
Thu Aug 3 16:35:46 EDT 2023


https://github.com/python/cpython/commit/c32f0955b430ea5960fb293f8a6ff9263fc64e5c
commit: c32f0955b430ea5960fb293f8a6ff9263fc64e5c
branch: 3.10
author: Pablo Galindo Salgado <Pablogsal at gmail.com>
committer: pablogsal <Pablogsal at gmail.com>
date: 2023-08-03T21:35:42+01:00
summary:

[3.10] Revert "[3.10] gh-107077: Raise SSLCertVerificationError even if the error is set via SSL_ERROR_SYSCALL (GH-107586) (#107589)" (#107602)

files:
D Misc/NEWS.d/next/Library/2023-08-03-12-52-19.gh-issue-107077.-pzHD6.rst
M Modules/_ssl.c

diff --git a/Misc/NEWS.d/next/Library/2023-08-03-12-52-19.gh-issue-107077.-pzHD6.rst b/Misc/NEWS.d/next/Library/2023-08-03-12-52-19.gh-issue-107077.-pzHD6.rst
deleted file mode 100644
index ecaf437a48e0a..0000000000000
--- a/Misc/NEWS.d/next/Library/2023-08-03-12-52-19.gh-issue-107077.-pzHD6.rst
+++ /dev/null
@@ -1,6 +0,0 @@
-Seems that in some conditions, OpenSSL will return ``SSL_ERROR_SYSCALL``
-instead of ``SSL_ERROR_SSL`` when a certification verification has failed,
-but the error parameters will still contain ``ERR_LIB_SSL`` and
-``SSL_R_CERTIFICATE_VERIFY_FAILED``. We are now detecting this situation and
-raising the appropiate ``ssl.SSLCertVerificationError``. Patch by Pablo
-Galindo
diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index bb0508f9aceec..7a28f2d37f6c5 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -656,10 +656,6 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)
                     errstr = "Some I/O error occurred";
                 }
             } else {
-                if (ERR_GET_LIB(e) == ERR_LIB_SSL &&
-                        ERR_GET_REASON(e) == SSL_R_CERTIFICATE_VERIFY_FAILED) {
-                    type = state->PySSLCertVerificationErrorObject;
-                }
                 p = PY_SSL_ERROR_SYSCALL;
             }
             break;



More information about the Python-checkins mailing list