[Python-3000] Py3k_struni additional test failures under cygwin

Guido van Rossum guido at python.org
Mon Jul 30 02:09:37 CEST 2007


On 7/29/07, Joe Smith <unknown_kev_cat at hotmail.com> wrote:
> What I have found is that (on CYGWIN) all of marshal seems to work fine
> except for marshal.load().
> marshal.dump()'s output can be read by 2.5's marshal.load() without problem.
> 3k's marshal.load() will not
> load the data from 3k's marshal.dump or 2.5's marshal.dump()
>
> It turns out to be a fault due to an uninitialized value on a RFILE.
> Specifically, the following patch (part of marshal_load in marshal.c fixes
> things.
>
> -----BEGIN PATCH-----
> Index: Python/marshal.c
> ===================================================================
> --- Python/marshal.c    (revision 56620)
> +++ Python/marshal.c    (working copy)
> @@ -1181,6 +1181,7 @@
>                 return NULL;
>         }
>         rf.strings = PyList_New(0);
> +       rf.depth=0;
>         result = read_object(&rf);
>         Py_DECREF(rf.strings);
>         Py_DECREF(data);
> -----END PATCH-----
>
> I'll submit the patch to sourceforge if needed, although the fact that all
> the other loading methods
> do set rf.depth=0 (including PyMarshal_ReadObjectFromFile) indicates to me
> that this is definately the correct patch.
> Looks like that line was accidentally forgoten.

Thanks! Looks like that line was accidentally dropped -- perhaps as a
result of a merge. It was in all previous versions.

Anyway, I've added it back.

Committed revision 56623.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-3000 mailing list