Skip to content

Commit 9dd4ea9

Browse files
committed
bpo-30555: Also consider NULL as a possible error in HANDLE_return_converter
1 parent ad77cd3 commit 9dd4ea9

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

PC/clinic/msvcrtmodule.c.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ msvcrt_get_osfhandle(PyObject *module, PyObject *arg)
174174
goto exit;
175175
}
176176
_return_value = msvcrt_get_osfhandle_impl(module, fd);
177-
if ((_return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
177+
if ((_return_value == NULL || _return_value == INVALID_HANDLE_VALUE) && PyErr_Occurred()) {
178178
goto exit;
179179
}
180180
return_value = PyLong_FromVoidPtr(_return_value);
@@ -589,4 +589,4 @@ msvcrt_SetErrorMode(PyObject *module, PyObject *arg)
589589
#ifndef MSVCRT_SET_ERROR_MODE_METHODDEF
590590
#define MSVCRT_SET_ERROR_MODE_METHODDEF
591591
#endif /* !defined(MSVCRT_SET_ERROR_MODE_METHODDEF) */
592-
/*[clinic end generated code: output=14ab3d3d39ce9deb input=a9049054013a1b77]*/
592+
/*[clinic end generated code: output=b7829f02d3bc2a9f input=a9049054013a1b77]*/

PC/msvcrtmodule.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@ class HANDLE_return_converter(CReturnConverter):
4242
4343
def render(self, function, data):
4444
self.declare(data)
45-
self.err_occurred_if("_return_value == INVALID_HANDLE_VALUE", data)
45+
self.err_occurred_if(
46+
"_return_value == NULL || _return_value == INVALID_HANDLE_VALUE",
47+
data)
4648
data.return_conversion.append(
4749
'return_value = PyLong_FromVoidPtr(_return_value);\n')
4850
@@ -63,7 +65,7 @@ class wchar_t_return_converter(CReturnConverter):
6365
data.return_conversion.append(
6466
'return_value = PyUnicode_FromOrdinal(_return_value);\n')
6567
[python start generated code]*/
66-
/*[python end generated code: output=da39a3ee5e6b4b0d input=dab543102cf6345d]*/
68+
/*[python end generated code: output=da39a3ee5e6b4b0d input=2b25dc89e9e59534]*/
6769

6870
/*[clinic input]
6971
module msvcrt

0 commit comments

Comments
 (0)