From f2ca5af43919e790f4e1b5dc3edeac6561e6e19b Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Mon, 13 Jun 2005 18:28:46 +0000 Subject: Fix bug [ 1180997 ] lax error-checking in new-in-2.4 marshal stuff which I'd assigned to Martin, but actually turned out to be easy to fix. Also, a test. --- Python/marshal.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Python') diff --git a/Python/marshal.c b/Python/marshal.c index 6c65700966..7f38a467f9 100644 --- a/Python/marshal.c +++ b/Python/marshal.c @@ -648,6 +648,10 @@ r_object(RFILE *p) case TYPE_STRINGREF: n = r_long(p); + if (n < 0 || n >= PyList_GET_SIZE(p->strings)) { + PyErr_SetString(PyExc_ValueError, "bad marshal data"); + return NULL; + } v = PyList_GET_ITEM(p->strings, n); Py_INCREF(v); return v; -- cgit v1.2.1