mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Fixed possible abort in ceval loop if _PyUnicode_FromId() fails.
Every opcode should end with DISPATCH() or goto error.
This commit is contained in:
		
						commit
						818b5cc6db
					
				
					 1 changed files with 2 additions and 2 deletions
				
			
		| 
						 | 
					@ -2146,7 +2146,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
 | 
				
			||||||
            else {
 | 
					            else {
 | 
				
			||||||
                PyObject *build_class_str = _PyUnicode_FromId(&PyId___build_class__);
 | 
					                PyObject *build_class_str = _PyUnicode_FromId(&PyId___build_class__);
 | 
				
			||||||
                if (build_class_str == NULL)
 | 
					                if (build_class_str == NULL)
 | 
				
			||||||
                    break;
 | 
					                    goto error;
 | 
				
			||||||
                bc = PyObject_GetItem(f->f_builtins, build_class_str);
 | 
					                bc = PyObject_GetItem(f->f_builtins, build_class_str);
 | 
				
			||||||
                if (bc == NULL) {
 | 
					                if (bc == NULL) {
 | 
				
			||||||
                    if (PyErr_ExceptionMatches(PyExc_KeyError))
 | 
					                    if (PyErr_ExceptionMatches(PyExc_KeyError))
 | 
				
			||||||
| 
						 | 
					@ -2658,7 +2658,7 @@ _PyEval_EvalFrameDefault(PyFrameObject *f, int throwflag)
 | 
				
			||||||
                /* do the same if locals() is not a dict */
 | 
					                /* do the same if locals() is not a dict */
 | 
				
			||||||
                PyObject *ann_str = _PyUnicode_FromId(&PyId___annotations__);
 | 
					                PyObject *ann_str = _PyUnicode_FromId(&PyId___annotations__);
 | 
				
			||||||
                if (ann_str == NULL) {
 | 
					                if (ann_str == NULL) {
 | 
				
			||||||
                    break;
 | 
					                    goto error;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                ann_dict = PyObject_GetItem(f->f_locals, ann_str);
 | 
					                ann_dict = PyObject_GetItem(f->f_locals, ann_str);
 | 
				
			||||||
                if (ann_dict == NULL) {
 | 
					                if (ann_dict == NULL) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue