From 77ccd6d0c7420c4a1323f7e781d766a611723bed Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Sat, 8 May 2010 00:36:42 +0000 Subject: [PATCH] posix_error_with_allocated_filename() decodes the filename with PyUnicode_DecodeFSDefaultAndSize() and call PyErr_SetFromErrnoWithFilenameObject() instead of PyErr_SetFromErrnoWithFilename() --- Modules/posixmodule.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index a48f233da79..8aea6400837 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -559,9 +559,13 @@ posix_error_with_unicode_filename(Py_UNICODE* name) static PyObject * posix_error_with_allocated_filename(PyObject* name) { - PyObject *rc = PyErr_SetFromErrnoWithFilename(PyExc_OSError, - PyBytes_AsString(name)); + PyObject *name_str, *rc; + name_str = PyUnicode_DecodeFSDefaultAndSize(PyBytes_AsString(name), + PyBytes_GET_SIZE(name)); Py_DECREF(name); + rc = PyErr_SetFromErrnoWithFilenameObject(PyExc_OSError, + name_str); + Py_XDECREF(name_str); return rc; }