Catch a few extra error cases in marshal.c

This commit is contained in:
Kristján Valur Jónsson 2013-10-13 15:19:56 +00:00
parent 26e066d34c
commit 0a7697b718
1 changed files with 4 additions and 0 deletions

View File

@ -1297,6 +1297,8 @@ r_object(RFILE *p)
if (name == NULL)
goto code_error;
firstlineno = (int)r_long(p);
if (firstlineno == -1 && PyErr_Occurred())
break;
lnotab = r_object(p);
if (lnotab == NULL)
goto code_error;
@ -1326,6 +1328,8 @@ r_object(RFILE *p)
case TYPE_REF:
n = r_long(p);
if (n < 0 || n >= PyList_GET_SIZE(p->refs)) {
if (n == -1 && PyErr_Occurred())
break;
PyErr_SetString(PyExc_ValueError, "bad marshal data (invalid reference)");
break;
}