Pārlūkot izejas kodu

Viewport: Fix undefined behaviour found by llvm sanitizer.

When godot was running as the project manager, it tried to call a method on a null pointer (get_tree()->get_edited_scene_root()).
This is undefined behaviour and caused a crash when compiled with sanitizing enabled.

(cherry picked from commit 1d3c9c448d805d0813a67efdd6677c312d72bb32)
Andreas Haas 8 gadi atpakaļ
vecāks
revīzija
1620f46f03
1 mainītis faili ar 2 papildinājumiem un 2 dzēšanām
  1. 2 2
      scene/main/viewport.cpp

+ 2 - 2
scene/main/viewport.cpp

@@ -1347,7 +1347,7 @@ void Viewport::_vp_input(const InputEvent &p_ev) {
 		return;
 
 #ifdef TOOLS_ENABLED
-	if (get_tree()->is_editor_hint() && get_tree()->get_edited_scene_root()->is_a_parent_of(this)) {
+	if (get_tree()->is_editor_hint() && get_tree()->get_edited_scene_root() && get_tree()->get_edited_scene_root()->is_a_parent_of(this)) {
 		return;
 	}
 #endif
@@ -1371,7 +1371,7 @@ void Viewport::_vp_unhandled_input(const InputEvent &p_ev) {
 	if (disable_input)
 		return;
 #ifdef TOOLS_ENABLED
-	if (get_tree()->is_editor_hint() && get_tree()->get_edited_scene_root()->is_a_parent_of(this)) {
+	if (get_tree()->is_editor_hint() && get_tree()->get_edited_scene_root() && get_tree()->get_edited_scene_root()->is_a_parent_of(this)) {
 		return;
 	}
 #endif