mirror of
https://github.com/python/cpython.git
synced 2025-08-31 05:58:33 +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(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);
|
||||
return co;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue