summaryrefslogtreecommitdiffstats
path: root/Python/marshal.c
diff options
context:
space:
mode:
Diffstat (limited to 'Python/marshal.c')
-rw-r--r--Python/marshal.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/Python/marshal.c b/Python/marshal.c
index 4e55296..bd88939 100644
--- a/Python/marshal.c
+++ b/Python/marshal.c
@@ -808,10 +808,16 @@ r_object(RFILE *p)
PyObject *v, *v2;
Py_ssize_t idx = 0;
long i, n;
- int type = r_byte(p);
+ int type, code = r_byte(p);
int flag;
PyObject *retval;
+ if (code == EOF) {
+ PyErr_SetString(PyExc_EOFError,
+ "EOF read where object expected");
+ return NULL;
+ }
+
p->depth++;
if (p->depth > MAX_MARSHAL_STACK_DEPTH) {
@@ -820,8 +826,8 @@ r_object(RFILE *p)
return NULL;
}
- flag = type & FLAG_REF;
- type = type & ~FLAG_REF;
+ flag = code & FLAG_REF;
+ type = code & ~FLAG_REF;
#define R_REF(O) do{\
if (flag) \
@@ -830,12 +836,6 @@ r_object(RFILE *p)
switch (type) {
- case EOF:
- PyErr_SetString(PyExc_EOFError,
- "EOF read where object expected");
- retval = NULL;
- break;
-
case TYPE_NULL:
retval = NULL;
break;