Issue #18203: Replace malloc() with PyMem_Malloc() in _ssl for the password

This commit is contained in:
Victor Stinner 2013-07-07 17:07:52 +02:00
parent 5064a52bcb
commit 11ebff2757

View file

@ -2070,8 +2070,8 @@ _pwinfo_set(_PySSLPasswordInfo *pw_info, PyObject* password,
goto error; goto error;
} }
free(pw_info->password); PyMem_Free(pw_info->password);
pw_info->password = malloc(size); pw_info->password = PyMem_Malloc(size);
if (!pw_info->password) { if (!pw_info->password) {
PyErr_SetString(PyExc_MemoryError, PyErr_SetString(PyExc_MemoryError,
"unable to allocate password buffer"); "unable to allocate password buffer");
@ -2215,13 +2215,13 @@ load_cert_chain(PySSLContext *self, PyObject *args, PyObject *kwds)
} }
SSL_CTX_set_default_passwd_cb(self->ctx, orig_passwd_cb); SSL_CTX_set_default_passwd_cb(self->ctx, orig_passwd_cb);
SSL_CTX_set_default_passwd_cb_userdata(self->ctx, orig_passwd_userdata); SSL_CTX_set_default_passwd_cb_userdata(self->ctx, orig_passwd_userdata);
free(pw_info.password); PyMem_Free(pw_info.password);
Py_RETURN_NONE; Py_RETURN_NONE;
error: error:
SSL_CTX_set_default_passwd_cb(self->ctx, orig_passwd_cb); SSL_CTX_set_default_passwd_cb(self->ctx, orig_passwd_cb);
SSL_CTX_set_default_passwd_cb_userdata(self->ctx, orig_passwd_userdata); SSL_CTX_set_default_passwd_cb_userdata(self->ctx, orig_passwd_userdata);
free(pw_info.password); PyMem_Free(pw_info.password);
Py_XDECREF(keyfile_bytes); Py_XDECREF(keyfile_bytes);
Py_XDECREF(certfile_bytes); Py_XDECREF(certfile_bytes);
return NULL; return NULL;