Fix crash in OS::execute on FreeBSD

As spotted by @robfram, closes #15288.
Also reviewed other uses of `if (String.find(.*))` for potential similar mistakes, found a wrong (and useless) one in ScriptEditorDialog.
This commit is contained in:
Rémi Verschelde 2018-01-04 01:00:11 +01:00
parent e68965672d
commit d65ac7378c
4 changed files with 10 additions and 11 deletions

View File

@ -298,7 +298,7 @@ Error OS_Unix::execute(const String &p_path, const List<String> &p_arguments, bo
args.push_back(0); args.push_back(0);
#ifdef __FreeBSD__ #ifdef __FreeBSD__
if (p_path.find("/")) { if (p_path.find("/") != -1) {
// exec name contains path so use it // exec name contains path so use it
execv(p_path.utf8().get_data(), &args[0]); execv(p_path.utf8().get_data(), &args[0]);
} else { } else {

View File

@ -4423,7 +4423,7 @@ void EditorNode::_dropped_files(const Vector<String> &p_files, int p_screen) {
for (int i = 0; i < p_files.size(); i++) { for (int i = 0; i < p_files.size(); i++) {
String from = p_files[i]; String from = p_files[i];
if (!ResourceFormatImporter::get_singleton()->can_be_imported(from) && (just_copy.find(from.get_extension().to_lower()) < 0)) { if (!ResourceFormatImporter::get_singleton()->can_be_imported(from) && (just_copy.find(from.get_extension().to_lower()) != -1)) {
continue; continue;
} }
String to = to_path.plus_file(from.get_file()); String to = to_path.plus_file(from.get_file());

View File

@ -232,7 +232,7 @@ void ScriptCreateDialog::_lang_changed(int l) {
String path = file_path->get_text(); String path = file_path->get_text();
String extension = ""; String extension = "";
if (path != "") { if (path != "") {
if (path.find(".") >= 0) { if (path.find(".") != -1) {
extension = path.get_extension(); extension = path.get_extension();
} }
@ -359,16 +359,14 @@ void ScriptCreateDialog::_path_changed(const String &p_path) {
return; return;
} }
if (p.find("/") || p.find("\\")) { DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES);
DirAccess *d = DirAccess::create(DirAccess::ACCESS_RESOURCES); if (d->change_dir(p.get_base_dir()) != OK) {
if (d->change_dir(p.get_base_dir()) != OK) { _msg_path_valid(false, TTR("Invalid base path"));
_msg_path_valid(false, TTR("Invalid base path"));
memdelete(d);
_update_dialog();
return;
}
memdelete(d); memdelete(d);
_update_dialog();
return;
} }
memdelete(d);
/* Does file already exist */ /* Does file already exist */

View File

@ -209,6 +209,7 @@ Color ColorPicker::get_pick_color() const {
} }
void ColorPicker::add_preset(const Color &p_color) { void ColorPicker::add_preset(const Color &p_color) {
if (presets.find(p_color)) { if (presets.find(p_color)) {
presets.move_to_back(presets.find(p_color)); presets.move_to_back(presets.find(p_color));
} else { } else {