mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
Issue #23524: Replace _PyVerify_fd function with calls to _set_thread_local_invalid_parameter_handler.
This commit is contained in:
parent
fe0a41aae4
commit
8fc8980c96
11 changed files with 150 additions and 69 deletions
|
|
@ -121,7 +121,7 @@ PyAPI_FUNC(int) _Py_get_blocking(int fd);
|
|||
PyAPI_FUNC(int) _Py_set_blocking(int fd, int blocking);
|
||||
#endif /* !MS_WINDOWS */
|
||||
|
||||
#if defined _MSC_VER && _MSC_VER >= 1400
|
||||
#if defined _MSC_VER && _MSC_VER >= 1400 && _MSC_VER < 1900
|
||||
/* A routine to check if a file descriptor is valid on Windows. Returns 0
|
||||
* and sets errno to EBADF if it isn't. This is to avoid Assertions
|
||||
* from various functions in the Windows CRT beginning with
|
||||
|
|
|
|||
|
|
@ -877,4 +877,24 @@ extern pid_t forkpty(int *, char *, struct termios *, struct winsize *);
|
|||
#define PY_LITTLE_ENDIAN 1
|
||||
#endif
|
||||
|
||||
#ifdef Py_BUILD_CORE
|
||||
/*
|
||||
* Macros to protect CRT calls against instant termination when passed an
|
||||
* invalid parameter (issue23524).
|
||||
*/
|
||||
#if defined _MSC_VER && _MSC_VER >= 1900
|
||||
|
||||
extern _invalid_parameter_handler _Py_silent_invalid_parameter_handler;
|
||||
#define _Py_BEGIN_SUPPRESS_IPH { _invalid_parameter_handler _Py_old_handler = \
|
||||
_set_thread_local_invalid_parameter_handler(_Py_silent_invalid_parameter_handler);
|
||||
#define _Py_END_SUPPRESS_IPH _set_thread_local_invalid_parameter_handler(_Py_old_handler); }
|
||||
|
||||
#else
|
||||
|
||||
#define _Py_BEGIN_SUPPRESS_IPH
|
||||
#define _Py_END_SUPPRESS_IPH
|
||||
|
||||
#endif /* _MSC_VER >= 1900 */
|
||||
#endif /* Py_BUILD_CORE */
|
||||
|
||||
#endif /* Py_PYPORT_H */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue