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

This commit is contained in:
Steve Dower 2015-04-12 00:26:43 -04:00
parent 8fc8980c96
commit a1c7e727c8
2 changed files with 6 additions and 0 deletions

View File

@ -880,12 +880,14 @@ fileio_truncate(fileio *self, PyObject *args)
}
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
errno = 0;
#ifdef MS_WINDOWS
ret = _chsize_s(fd, pos);
#else
ret = ftruncate(fd, pos);
#endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
if (ret != 0) {

View File

@ -8803,11 +8803,13 @@ os_ftruncate_impl(PyModuleDef *module, int fd, Py_off_t length)
do {
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
result = _chsize_s(fd, length);
#else
result = ftruncate(fd, length);
#endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
} while (result != 0 && errno == EINTR &&
!(async_err = PyErr_CheckSignals()));
@ -8843,6 +8845,7 @@ os_truncate_impl(PyModuleDef *module, path_t *path, Py_off_t length)
return os_ftruncate_impl(module, path->fd, length);
Py_BEGIN_ALLOW_THREADS
_Py_BEGIN_SUPPRESS_IPH
#ifdef MS_WINDOWS
if (path->wide)
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)
#else
result = truncate(path->narrow, length);
#endif
_Py_END_SUPPRESS_IPH
Py_END_ALLOW_THREADS
if (result < 0)
return path_error(path);