[Bf-blender-cvs] [c0900a64cee] master: Fix T90341: Crash opening 2.4 file with File Browser editor open

Julian Eisel noreply at git.blender.org
Tue Aug 3 12:26:10 CEST 2021


Commit: c0900a64ceeaa46a1dfd1fa19d5b57449fb7788a
Author: Julian Eisel
Date:   Tue Aug 3 12:10:26 2021 +0200
Branches: master
https://developer.blender.org/rBc0900a64ceeaa46a1dfd1fa19d5b57449fb7788a

Fix T90341: Crash opening 2.4 file with File Browser editor open

The file selection parameters (e.g. `context.space_data.params`) are
expected to be unset in certain cases. Reading 2.4 files seems to be one
of them. Hence, code using it should check it's set first. Also added an
assert to a File Browser UI template printing a message when the
parameters are unset, to help debugging the issue.

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

M	release/scripts/startup/bl_ui/space_filebrowser.py
M	source/blender/editors/space_file/file_draw.c

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

diff --git a/release/scripts/startup/bl_ui/space_filebrowser.py b/release/scripts/startup/bl_ui/space_filebrowser.py
index 44631e368a3..3189efeb939 100644
--- a/release/scripts/startup/bl_ui/space_filebrowser.py
+++ b/release/scripts/startup/bl_ui/space_filebrowser.py
@@ -373,6 +373,7 @@ class FILEBROWSER_PT_advanced_filter(Panel):
     def poll(cls, context):
         # only useful in append/link (library) context currently...
         return (
+            context.space_data.params and
             context.space_data.params.use_library_browsing and
             panel_poll_is_upper_region(context.region) and
             not panel_poll_is_asset_browsing(context)
@@ -423,6 +424,10 @@ class FILEBROWSER_PT_directory_path(Panel):
 
         return True
 
+    @classmethod
+    def poll(cls, context):
+        return context.space_data.params
+
     def draw(self, context):
         layout = self.layout
         space = context.space_data
diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c
index 37a56816677..7d9b8583838 100644
--- a/source/blender/editors/space_file/file_draw.c
+++ b/source/blender/editors/space_file/file_draw.c
@@ -82,6 +82,9 @@ void ED_file_path_button(bScreen *screen,
   PointerRNA params_rna_ptr;
   uiBut *but;
 
+  BLI_assert_msg(params != NULL,
+                 "File select parameters not set. The caller is expected to check this.");
+
   RNA_pointer_create(&screen->id, &RNA_FileSelectParams, params, &params_rna_ptr);
 
   /* callbacks for operator check functions */



More information about the Bf-blender-cvs mailing list