Commit 3800e1e9 authored by Victor Stinner's avatar Victor Stinner

Issue #8477: _ssl._test_decode_cert() supports str with surrogates and bytes

for the filename
parent 27ba6388
...@@ -363,6 +363,9 @@ C-API ...@@ -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 * ...@@ -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) { ...@@ -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) { ...@@ -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;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment