mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
[3.12] gh-106831: Fix NULL check of d2i_SSL_SESSION() result in _ssl.c (GH-106832) (#106835)
gh-106831: Fix NULL check of d2i_SSL_SESSION() result in _ssl.c (GH-106832)
(cherry picked from commit ebf2c56b33
)
Co-authored-by: Nikita Sobolev <mail@sobolevn.me>
This commit is contained in:
parent
497bfd5047
commit
2eef81e05e
2 changed files with 6 additions and 3 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
Fix potential missing ``NULL`` check of ``d2i_SSL_SESSION`` result in
|
||||||
|
``_ssl.c``.
|
|
@ -2779,7 +2779,7 @@ _ssl_session_dup(SSL_SESSION *session) {
|
||||||
/* get length */
|
/* get length */
|
||||||
slen = i2d_SSL_SESSION(session, NULL);
|
slen = i2d_SSL_SESSION(session, NULL);
|
||||||
if (slen == 0 || slen > 0xFF00) {
|
if (slen == 0 || slen > 0xFF00) {
|
||||||
PyErr_SetString(PyExc_ValueError, "i2d() failed.");
|
PyErr_SetString(PyExc_ValueError, "i2d() failed");
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
if ((senc = PyMem_Malloc(slen)) == NULL) {
|
if ((senc = PyMem_Malloc(slen)) == NULL) {
|
||||||
|
@ -2788,12 +2788,13 @@ _ssl_session_dup(SSL_SESSION *session) {
|
||||||
}
|
}
|
||||||
p = senc;
|
p = senc;
|
||||||
if (!i2d_SSL_SESSION(session, &p)) {
|
if (!i2d_SSL_SESSION(session, &p)) {
|
||||||
PyErr_SetString(PyExc_ValueError, "i2d() failed.");
|
PyErr_SetString(PyExc_ValueError, "i2d() failed");
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
const_p = senc;
|
const_p = senc;
|
||||||
newsession = d2i_SSL_SESSION(NULL, &const_p, slen);
|
newsession = d2i_SSL_SESSION(NULL, &const_p, slen);
|
||||||
if (session == NULL) {
|
if (newsession == NULL) {
|
||||||
|
PyErr_SetString(PyExc_ValueError, "d2i() failed");
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
PyMem_Free(senc);
|
PyMem_Free(senc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue