mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
Issue #8477: _ssl._test_decode_cert() supports str with surrogates and bytes
for the filename
This commit is contained in:
parent
27ba6388ed
commit
3800e1e961
2 changed files with 8 additions and 5 deletions
|
@ -363,6 +363,9 @@ C-API
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- Issue #8477: _ssl._test_decode_cert() supports str with surrogates and bytes
|
||||||
|
for the filename
|
||||||
|
|
||||||
- Issue #8550: Add first class ``SSLContext`` objects to the ssl module.
|
- Issue #8550: Add first class ``SSLContext`` objects to the ssl module.
|
||||||
|
|
||||||
- Issue #8681: Make the zlib module's error messages more informative when
|
- Issue #8681: Make the zlib module's error messages more informative when
|
||||||
|
|
|
@ -811,13 +811,13 @@ static PyObject *
|
||||||
PySSL_test_decode_certificate (PyObject *mod, PyObject *args) {
|
PySSL_test_decode_certificate (PyObject *mod, PyObject *args) {
|
||||||
|
|
||||||
PyObject *retval = NULL;
|
PyObject *retval = NULL;
|
||||||
char *filename = NULL;
|
PyObject *filename;
|
||||||
X509 *x=NULL;
|
X509 *x=NULL;
|
||||||
BIO *cert;
|
BIO *cert;
|
||||||
int verbose = 1;
|
int verbose = 1;
|
||||||
|
|
||||||
if (!PyArg_ParseTuple(args, "s|i:test_decode_certificate",
|
if (!PyArg_ParseTuple(args, "O&|i:test_decode_certificate",
|
||||||
&filename, &verbose))
|
PyUnicode_FSConverter, &filename, &verbose))
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if ((cert=BIO_new(BIO_s_file())) == NULL) {
|
if ((cert=BIO_new(BIO_s_file())) == NULL) {
|
||||||
|
@ -826,7 +826,7 @@ PySSL_test_decode_certificate (PyObject *mod, PyObject *args) {
|
||||||
goto fail0;
|
goto fail0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (BIO_read_filename(cert,filename) <= 0) {
|
if (BIO_read_filename(cert, PyBytes_AsString(filename)) <= 0) {
|
||||||
PyErr_SetString(PySSLErrorObject,
|
PyErr_SetString(PySSLErrorObject,
|
||||||
"Can't open file");
|
"Can't open file");
|
||||||
goto fail0;
|
goto fail0;
|
||||||
|
@ -842,7 +842,7 @@ PySSL_test_decode_certificate (PyObject *mod, PyObject *args) {
|
||||||
retval = _decode_certificate(x, verbose);
|
retval = _decode_certificate(x, verbose);
|
||||||
|
|
||||||
fail0:
|
fail0:
|
||||||
|
Py_DECREF(filename);
|
||||||
if (cert != NULL) BIO_free(cert);
|
if (cert != NULL) BIO_free(cert);
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue