Explorar o código

UI: Fix crash on macOS if no python path is set in configuration

Obvious fix guarding against calling the std::string constructor with
a NULL pointer.
PatTheMav %!s(int64=3) %!d(string=hai) anos
pai
achega
1766f01b7a
Modificáronse 1 ficheiros con 12 adicións e 9 borrados
  1. 12 9
      UI/frontend-plugins/frontend-tools/scripts.cpp

+ 12 - 9
UI/frontend-plugins/frontend-tools/scripts.cpp

@@ -653,15 +653,18 @@ extern "C" void InitScripts()
 		config_get_string(config, "Python", "Path" ARCH_NAME);
 
 #ifdef __APPLE__
-	std::string _python_path(python_path);
-	std::size_t pos = _python_path.find("/Python.framework/Versions");
-
-	if (pos != std::string::npos) {
-		std::string _temp = _python_path.substr(0, pos);
-		config_set_string(config, "Python", "Path" ARCH_NAME,
-				  _temp.c_str());
-		config_save(config);
-		python_path = _temp.c_str();
+	if (python_path && *python_path) {
+		std::string _python_path(python_path);
+		std::size_t pos =
+			_python_path.find("/Python.framework/Versions");
+
+		if (pos != std::string::npos) {
+			std::string _temp = _python_path.substr(0, pos);
+			config_set_string(config, "Python", "Path" ARCH_NAME,
+					  _temp.c_str());
+			config_save(config);
+			python_path = _temp.c_str();
+		}
 	}
 #endif