mirror of
https://github.com/python/cpython.git
synced 2025-08-01 15:43:13 +00:00
Make cStringIO.truncate raise IOError for negative
arguments (even for -1). Fixes the last bit of #1359365.
This commit is contained in:
parent
283a1353a0
commit
cffcc8b195
3 changed files with 15 additions and 1 deletions
|
@ -289,7 +289,17 @@ IO_truncate(IOobject *self, PyObject *args) {
|
|||
|
||||
if (!IO__opencheck(self)) return NULL;
|
||||
if (!PyArg_ParseTuple(args, "|n:truncate", &pos)) return NULL;
|
||||
if (pos < 0) pos = self->pos;
|
||||
|
||||
if (PyTuple_Size(args) == 0) {
|
||||
/* No argument passed, truncate to current position */
|
||||
pos = self->pos;
|
||||
}
|
||||
|
||||
if (pos < 0) {
|
||||
errno = EINVAL;
|
||||
PyErr_SetFromErrno(PyExc_IOError);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (self->string_size > pos) self->string_size = pos;
|
||||
self->pos = self->string_size;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue