[Bf-blender-cvs] [5c9bea25d08] blender-v3.3-release: Fix crash accessing PyEval_GetFrame from Python's crash handler

Campbell Barton noreply at git.blender.org
Fri Aug 19 08:24:26 CEST 2022


Commit: 5c9bea25d08ccdcac004d22046d0ca08ad3f462c
Author: Campbell Barton
Date:   Fri Aug 19 16:20:20 2022 +1000
Branches: blender-v3.3-release
https://developer.blender.org/rB5c9bea25d08ccdcac004d22046d0ca08ad3f462c

Fix crash accessing PyEval_GetFrame from Python's crash handler

Check the thread-state before accessing PyEval_GetFrame, since this is
a crash handler, the state of the Python interpreter isn't known.

===================================================================

M	source/blender/python/intern/bpy_interface.c

===================================================================

diff --git a/source/blender/python/intern/bpy_interface.c b/source/blender/python/intern/bpy_interface.c
index 939fa475344..23fc0bcaeda 100644
--- a/source/blender/python/intern/bpy_interface.c
+++ b/source/blender/python/intern/bpy_interface.c
@@ -585,6 +585,11 @@ void BPY_python_use_system_env(void)
 void BPY_python_backtrace(FILE *fp)
 {
   fputs("\n# Python backtrace\n", fp);
+
+  /* Can happen in rare cases. */
+  if (!_PyThreadState_UncheckedGet()) {
+    return;
+  }
   PyFrameObject *frame;
   if (!(frame = PyEval_GetFrame())) {
     return;



More information about the Bf-blender-cvs mailing list