summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>2001-10-23 21:25:24 (GMT)
committerGuido van Rossum <guido@python.org>2001-10-23 21:25:24 (GMT)
commit00ebd46dfc8623ac0bd436e5d0c47b53cac29fb9 (patch)
treeb31c56f7e70af0d9b1459602a504192de8b9d6e7 /Objects
parent0d429e8cdd98399b3c7eae55984463856de9281d (diff)
downloadcpython-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.c3
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();