[Bf-blender-cvs] [16289274ed6] master: Fix T81656: Crash relocating a linked library into the current .blend

Philipp Oeser noreply at git.blender.org
Tue Oct 13 14:43:59 CEST 2020


Commit: 16289274ed6fdae83a3fbe400698d5d40c7a5d6c
Author: Philipp Oeser
Date:   Tue Oct 13 11:43:32 2020 +0200
Branches: master
https://developer.blender.org/rB16289274ed6fdae83a3fbe400698d5d40c7a5d6c

Fix T81656: Crash relocating a linked library into the current .blend

A .blend file cannot use itself as a library.
This is prevented when linking manually, but was still possible when
relocating, which is now prevented.

Maniphest Tasks: T81656

Differential Revision: https://developer.blender.org/D9191

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

M	source/blender/windowmanager/intern/wm_files_link.c

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

diff --git a/source/blender/windowmanager/intern/wm_files_link.c b/source/blender/windowmanager/intern/wm_files_link.c
index 860c1d40dd9..e97f4ed0fa6 100644
--- a/source/blender/windowmanager/intern/wm_files_link.c
+++ b/source/blender/windowmanager/intern/wm_files_link.c
@@ -1057,6 +1057,15 @@ static int wm_lib_relocate_exec_do(bContext *C, wmOperator *op, bool do_reload)
       return OPERATOR_CANCELLED;
     }
 
+    if (BLI_path_cmp(BKE_main_blendfile_path(bmain), path) == 0) {
+      BKE_reportf(op->reports,
+                  RPT_ERROR_INVALID_INPUT,
+                  "Cannot relocate library '%s' to current blend file '%s'",
+                  lib->id.name,
+                  path);
+      return OPERATOR_CANCELLED;
+    }
+
     if (BLI_path_cmp(lib->filepath_abs, path) == 0) {
 #ifdef PRINT_DEBUG
       printf("We are supposed to reload '%s' lib (%d)...\n", lib->filepath, lib->id.us);



More information about the Bf-blender-cvs mailing list