posix_error_with_allocated_filename() decodes the filename with

PyUnicode_DecodeFSDefaultAndSize() and call
PyErr_SetFromErrnoWithFilenameObject() instead of
PyErr_SetFromErrnoWithFilename()
This commit is contained in:
Victor Stinner 2010-05-08 00:36:42 +00:00
parent 8d93e49a93
commit 77ccd6d0c7
1 changed files with 6 additions and 2 deletions

View File

@ -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;
}