mirror of
https://github.com/python/cpython.git
synced 2025-11-01 10:45:30 +00:00
When returning an error from jcompile() (which is passed through by
PyNode_Compile()), make sure that an exception is actually set -- otherwise someone stomped on our error. [2.0 checkin of this fix.]
This commit is contained in:
parent
ed473a46fc
commit
6c2f0c73a1
1 changed files with 8 additions and 0 deletions
|
|
@ -3293,6 +3293,14 @@ jcompile(node *n, char *filename, struct compiling *base)
|
||||||
Py_XDECREF(filename);
|
Py_XDECREF(filename);
|
||||||
Py_XDECREF(name);
|
Py_XDECREF(name);
|
||||||
}
|
}
|
||||||
|
else if (!PyErr_Occurred()) {
|
||||||
|
/* This could happen if someone called PyErr_Clear() after an
|
||||||
|
error was reported above. That's not supposed to happen,
|
||||||
|
but I just plugged one case and I'm not sure there can't be
|
||||||
|
others. In that case, raise SystemError so that at least
|
||||||
|
it gets reported instead dumping core. */
|
||||||
|
PyErr_SetString(PyExc_SystemError, "lost syntax error");
|
||||||
|
}
|
||||||
com_free(&sc);
|
com_free(&sc);
|
||||||
return co;
|
return co;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue