[Python-checkins] [3.6] _ssl_: Fix compiler warning (GH-3559) (#3569)

Christian Heimes webhook-mailer at python.org
Thu Sep 14 05:15:14 EDT 2017


https://github.com/python/cpython/commit/472cc9f366ef16cab72eed21bdc6a24f194fc03a
commit: 472cc9f366ef16cab72eed21bdc6a24f194fc03a
branch: 3.6
author: Christian Heimes <christian at python.org>
committer: GitHub <noreply at github.com>
date: 2017-09-14T11:15:07+02:00
summary:

[3.6] _ssl_: Fix compiler warning (GH-3559) (#3569)

Cast Py_buffer.len (Py_ssize_t, signed) to size_t (unsigned) to
prevent the following warning:

Modules/_ssl.c:3089:21: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare].
(cherry picked from commit 5a61559fb0776a9a0f08294ec9003cea13940430)

files:
M Modules/_ssl.c

diff --git a/Modules/_ssl.c b/Modules/_ssl.c
index 4a656a145ab..a32fce47ef6 100644
--- a/Modules/_ssl.c
+++ b/Modules/_ssl.c
@@ -3024,6 +3024,12 @@ _ssl__SSLContext__set_alpn_protocols_impl(PySSLContext *self,
 /*[clinic end generated code: output=87599a7f76651a9b input=9bba964595d519be]*/
 {
 #ifdef HAVE_ALPN
+    if ((size_t)protos->len > UINT_MAX) {
+        PyErr_Format(PyExc_OverflowError,
+            "protocols longer than %d bytes", UINT_MAX);
+        return NULL;
+    }
+
     PyMem_FREE(self->alpn_protocols);
     self->alpn_protocols = PyMem_Malloc(protos->len);
     if (!self->alpn_protocols)



More information about the Python-checkins mailing list