diff options
author | Guido van Rossum <guido@python.org> | 2001-10-23 21:25:24 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2001-10-23 21:25:24 (GMT) |
commit | 00ebd46dfc8623ac0bd436e5d0c47b53cac29fb9 (patch) | |
tree | b31c56f7e70af0d9b1459602a504192de8b9d6e7 /Objects | |
parent | 0d429e8cdd98399b3c7eae55984463856de9281d (diff) | |
download | cpython-00ebd46dfc8623ac0bd436e5d0c47b53cac29fb9.zip cpython-00ebd46dfc8623ac0bd436e5d0c47b53cac29fb9.tar.gz cpython-00ebd46dfc8623ac0bd436e5d0c47b53cac29fb9.tar.bz2 |
SF patch #474175 (Jay T Miller): file.readinto arg parsing bug
The C-code in fileobject.readinto(buffer) which parses
the arguments assumes that size_t is interchangeable
with int:
size_t ntodo, ndone, nnow;
if (f->f_fp == NULL)
return err_closed();
if (!PyArg_Parse(args, "w#", &ptr, &ntodo))
return NULL;
This causes a problem on Alpha / Tru64 / OSF1 v5.1
where size_t is a long and sizeof(long) != sizeof(int).
The patch I'm proposing declares ntodo as an int. An
alternative might be to redefine w# to expect size_t.
[We can't change w# because there are probably third party modules
relying on it. GvR]
Diffstat (limited to 'Objects')
-rw-r--r-- | Objects/fileobject.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Objects/fileobject.c b/Objects/fileobject.c index 18f9ce2..cda5ff2 100644 --- a/Objects/fileobject.c +++ b/Objects/fileobject.c @@ -606,7 +606,8 @@ static PyObject * file_readinto(PyFileObject *f, PyObject *args) { char *ptr; - size_t ntodo, ndone, nnow; + int ntodo; + size_t ndone, nnow; if (f->f_fp == NULL) return err_closed(); |