From 16289274ed6fdae83a3fbe400698d5d40c7a5d6c Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Tue, 13 Oct 2020 11:43:32 +0200 Subject: 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 --- source/blender/windowmanager/intern/wm_files_link.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to '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); -- cgit v1.2.3