Kaydet (Commit) a1c7e727 authored tarafından Steve Dower's avatar Steve Dower

Issue #23668: Suppresses invalid parameter handler around chsize calls.

üst 8fc8980c
...@@ -880,12 +880,14 @@ fileio_truncate(fileio *self, PyObject *args) ...@@ -880,12 +880,14 @@ fileio_truncate(fileio *self, PyObject *args)
} }
Py_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
errno = 0; errno = 0;
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
ret = _chsize_s(fd, pos); ret = _chsize_s(fd, pos);
#else #else
ret = ftruncate(fd, pos); ret = ftruncate(fd, pos);
#endif #endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS Py_END_ALLOW_THREADS
if (ret != 0) { if (ret != 0) {
......
...@@ -8803,11 +8803,13 @@ os_ftruncate_impl(PyModuleDef *module, int fd, Py_off_t length) ...@@ -8803,11 +8803,13 @@ os_ftruncate_impl(PyModuleDef *module, int fd, Py_off_t length)
do { do {
Py_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
result = _chsize_s(fd, length); result = _chsize_s(fd, length);
#else #else
result = ftruncate(fd, length); result = ftruncate(fd, length);
#endif #endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS Py_END_ALLOW_THREADS
} while (result != 0 && errno == EINTR && } while (result != 0 && errno == EINTR &&
!(async_err = PyErr_CheckSignals())); !(async_err = PyErr_CheckSignals()));
...@@ -8843,6 +8845,7 @@ os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length) ...@@ -8843,6 +8845,7 @@ os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length)
return os_ftruncate_impl(module, path->fd, length); return os_ftruncate_impl(module, path->fd, length);
Py_BEGIN_ALLOW_THREADS Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
if (path->wide) if (path->wide)
fd = _wopen(path->wide, _O_WRONLY | _O_BINARY | _O_NOINHERIT); fd = _wopen(path->wide, _O_WRONLY | _O_BINARY | _O_NOINHERIT);
...@@ -8859,6 +8862,7 @@ os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length) ...@@ -8859,6 +8862,7 @@ os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length)
#else #else
result = truncate(path->narrow, length); result = truncate(path->narrow, length);
#endif #endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS Py_END_ALLOW_THREADS
if (result < 0) if (result < 0)
return path_error(path); return path_error(path);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment