Fixed possible abort in ceval loop if _PyUnicode_FromId() fails.

Every opcode should end with DISPATCH() or goto error.
This commit is contained in:
Serhiy Storchaka 2016-11-08 23:14:00 +02:00
commit 818b5cc6db
1 changed files with 2 additions and 2 deletions

View File

@ -2146,7 +2146,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
else {
PyObject *build_class_str = _PyUnicode_FromId(&PyId___build_class__);
if (build_class_str == NULL)
break;
goto error;
bc = PyObject_GetItem(f->f_builtins, build_class_str);
if (bc == NULL) {
if (PyErr_ExceptionMatches(PyExc_KeyError))
@ -2658,7 +2658,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
/* do the same if locals() is not a dict */
PyObject *ann_str = _PyUnicode_FromId(&PyId___annotations__);
if (ann_str == NULL) {
break;
goto error;
}
ann_dict = PyObject_GetItem(f->f_locals, ann_str);
if (ann_dict == NULL) {