From 264ed9d7a1898e2bf74db0a9418a2e6fa29ec6b8 Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Wed, 15 May 2019 23:15:43 -0600 Subject: [PATCH 1/2] bpo-36935: Remove usage of the deprecated PyErr_SetFromWindowsErrWithUnicodeFilename() In e895de3e7f3cc2f7213b87621cfe9812ea4343f0, the deprecated function PyErr_SetFromWindowsErrWithUnicodeFilename() was added in two functions in Modules/_winapi.c. This function was deprecated in 3.3. --- Modules/_winapi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/_winapi.c b/Modules/_winapi.c index 2eb708e9073e91..4efd091fd191e8 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -502,7 +502,7 @@ _winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle, Py_END_ALLOW_THREADS if (handle == NULL) { - PyErr_SetFromWindowsErrWithUnicodeFilename(0, name); + PyErr_SetFromWindowsErr(0); handle = INVALID_HANDLE_VALUE; } @@ -1379,7 +1379,7 @@ _winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access, Py_END_ALLOW_THREADS if (handle == NULL) { - PyErr_SetFromWindowsErrWithUnicodeFilename(0, name); + PyErr_SetFromWindowsErr(0); handle = INVALID_HANDLE_VALUE; } From 04e1e233fd4ed32cd5ebe08e1d8f0ab44c4b5aaa Mon Sep 17 00:00:00 2001 From: Zackery Spytz Date: Wed, 29 May 2019 17:58:46 -0600 Subject: [PATCH 2/2] Use PyErr_SetExcFromWindowsErrWithFilenameObject(). --- Modules/_winapi.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Modules/_winapi.c b/Modules/_winapi.c index 4efd091fd191e8..b37b8e0847d0a1 100644 --- a/Modules/_winapi.c +++ b/Modules/_winapi.c @@ -502,7 +502,9 @@ _winapi_CreateFileMapping_impl(PyObject *module, HANDLE file_handle, Py_END_ALLOW_THREADS if (handle == NULL) { - PyErr_SetFromWindowsErr(0); + PyObject *temp = PyUnicode_FromWideChar(name, -1); + PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp); + Py_XDECREF(temp); handle = INVALID_HANDLE_VALUE; } @@ -1379,7 +1381,9 @@ _winapi_OpenFileMapping_impl(PyObject *module, DWORD desired_access, Py_END_ALLOW_THREADS if (handle == NULL) { - PyErr_SetFromWindowsErr(0); + PyObject *temp = PyUnicode_FromWideChar(name, -1); + PyErr_SetExcFromWindowsErrWithFilenameObject(PyExc_OSError, 0, temp); + Py_XDECREF(temp); handle = INVALID_HANDLE_VALUE; }