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]
This commit is contained in:
parent
0d429e8cdd
commit
00ebd46dfc
|
@ -279,6 +279,7 @@ Dieter Maurer
|
|||
Greg McFarlane
|
||||
Michael McLay
|
||||
Gordon McMillan
|
||||
Jay T. Miller
|
||||
Caolan McNamara
|
||||
Craig McPheeters
|
||||
Lambert Meertens
|
||||
|
|
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue