From: Victor Stinner Date: Sat, 8 May 2010 00:36:42 +0000 (+0000) Subject: posix_error_with_allocated_filename() decodes the filename with X-Git-Tag: v3.2a1~878 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=77ccd6d0c7420c4a1323f7e781d766a611723bed;p=python posix_error_with_allocated_filename() decodes the filename with PyUnicode_DecodeFSDefaultAndSize() and call PyErr_SetFromErrnoWithFilenameObject() instead of PyErr_SetFromErrnoWithFilename() --- diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index a48f233da7..8aea640083 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; }