diff --git a/Modules/_ssl.c b/Modules/_ssl.c index 1e4b38a..990d54c 100644 --- a/Modules/_ssl.c +++ b/Modules/_ssl.c @@ -1091,8 +1091,12 @@ static PyObject *PySSL_SSLwrite(PySSLSocket *self, PyObject *args) } do { err = 0; + if (len <= INT_MAX) + len = (int)buf.len; + else + len = INT_MAX; PySSL_BEGIN_ALLOW_THREADS - len = SSL_write(self->ssl, buf.buf, buf.len); + len = SSL_write(self->ssl, buf.buf, len); err = SSL_get_error(self->ssl, len); PySSL_END_ALLOW_THREADS if (PyErr_CheckSignals()) {