Make cStringIO.truncate raise IOError for negative

arguments (even for -1). Fixes the last bit of
#1359365.
This commit is contained in:
Martin v. Löwis 2006-11-19 10:41:41 +00:00
parent 283a1353a0
commit cffcc8b195
3 changed files with 15 additions and 1 deletions

View file

@ -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;