mirror of
https://github.com/python/cpython.git
synced 2025-11-26 13:22:51 +00:00
gh-106831: Fix NULL check of d2i_SSL_SESSION() result in _ssl.c (#106832)
This commit is contained in:
parent
8e9a1a0322
commit
ebf2c56b33
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``.
|
||||||
|
|
@ -2808,7 +2808,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) {
|
||||||
|
|
@ -2817,12 +2817,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