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:
Guido van Rossum 2001-10-23 21:25:24 +00:00
parent 0d429e8cdd
commit 00ebd46dfc
2 changed files with 3 additions and 1 deletions

View File

@ -279,6 +279,7 @@ Dieter Maurer
Greg McFarlane
Michael McLay
Gordon McMillan
Jay T. Miller
Caolan McNamara
Craig McPheeters
Lambert Meertens

View File

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