Skip to content

Commit fecfe17

Browse files
committed
Don't segfault (assert) when flag != 0 for TYPE_CODE; just error
1 parent 2137d12 commit fecfe17

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

Python/marshal.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -1480,7 +1480,11 @@ r_object(RFILE *p)
14801480
struct _PyCodeConstructor con = { 0 }; // All zeros
14811481
Py_ssize_t first_ref = -1;
14821482

1483-
assert(flag == 0); // We don't handle references to code objects
1483+
if (flag != 0) {
1484+
PyErr_BadArgument();
1485+
return NULL;
1486+
}
1487+
14841488
v = NULL;
14851489

14861490
/* XXX ignore long->int overflows for now */
@@ -2073,6 +2077,7 @@ _PyCode_Hydrate(PyCodeObject *code)
20732077

20742078
PyObject *result = read_object(&rf);
20752079
Py_XDECREF(rf.refs);
2080+
assert(result == NULL || code->co_hydra_context == NULL);
20762081
Py_XDECREF(code->co_hydra_context);
20772082
code->co_hydra_context = NULL;
20782083
Py_XDECREF(ctx->code);

0 commit comments

Comments
 (0)