同步操作将从 OpenCloudOS Stream/python3.11 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
From 458871277323024d5d4db35ca7056cc51d5e4d8d Mon Sep 17 00:00:00 2001From: Victor Stinner <vstinner@python.org>Date: Thu, 3 Apr 2025 18:25:51 +0200Subject: [PATCH] [3.11] gh-127257: ssl: Raise OSError for ERR_LIB_SYS(GH-127361) (GH-127905) (GH-131970)gh-127257: ssl: Raise OSError for ERR_LIB_SYS (GH-127361)From the ERR_raise manpage:ERR_LIB_SYSThis "library code" indicates that a system error isbeing reported. In this case, the reason code givento `ERR_raise()` and `ERR_raise_data()` *must* be`errno(3)`.This PR only handles ERR_LIB_SYS for the high-lever error typesSSL_ERROR_SYSCALL and SSL_ERROR_SSL, i.e., not the ones whereOpenSSL indicates it has some more information about the issue.(cherry picked from commit f4b31edf2d9d72878dab1f66a36913b5bcc848ec)(cherry picked from commit 7f707fa6c67d0bfa9bbc1a9f344b932789659397)Co-authored-by: Petr Viktorin <encukou@gmail.com>---.../2024-11-28-14-14-46.gh-issue-127257.n6-jU9.rst | 2 ++Modules/_ssl.c | 10 ++++++++++2 files changed, 12 insertions(+)create mode 100644 Misc/NEWS.d/next/Library/2024-11-28-14-14-46.gh-issue-127257.n6-jU9.rstdiff --git a/Misc/NEWS.d/next/Library/2024-11-28-14-14-46.gh-issue-127257.n6-jU9.rst b/Misc/NEWS.d/next/Library/2024-11-28-14-14-46.gh-issue-127257.n6-jU9.rstnew file mode 100644index 00000000000000..fb0380cba0b607--- /dev/null+++ b/Misc/NEWS.d/next/Library/2024-11-28-14-14-46.gh-issue-127257.n6-jU9.rst@@ -0,0 +1,2 @@+In :mod:`ssl`, system call failures that OpenSSL reports using+``ERR_LIB_SYS`` are now raised as :exc:`OSError`.diff --git a/Modules/_ssl.c b/Modules/_ssl.cindex 120c739e196732..09207abde14545 100644--- a/Modules/_ssl.c+++ b/Modules/_ssl.c@@ -654,6 +654,11 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)ERR_GET_REASON(e) == SSL_R_CERTIFICATE_VERIFY_FAILED) {type = state->PySSLCertVerificationErrorObject;}+ if (ERR_GET_LIB(e) == ERR_LIB_SYS) {+ // A system error is being reported; reason is set to errno+ errno = ERR_GET_REASON(e);+ return PyErr_SetFromErrno(PyExc_OSError);+ }p = PY_SSL_ERROR_SYSCALL;}break;@@ -679,6 +684,11 @@ PySSL_SetError(PySSLSocket *sslsock, int ret, const char *filename, int lineno)errstr = "EOF occurred in violation of protocol";}#endif+ if (ERR_GET_LIB(e) == ERR_LIB_SYS) {+ // A system error is being reported; reason is set to errno+ errno = ERR_GET_REASON(e);+ return PyErr_SetFromErrno(PyExc_OSError);+ }break;}default:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。