Added missing path verification on Unix, closes #20762

This commit is contained in:
Juan Linietsky 2018-11-22 23:21:03 -03:00
parent cdafb7bce2
commit 8ba0d513fa

View file

@ -328,6 +328,17 @@ Error DirAccessUnix::change_dir(String p_dir) {
return ERR_INVALID_PARAMETER; return ERR_INVALID_PARAMETER;
} }
String base = _get_root_path();
if (base != String()) {
ERR_FAIL_COND_V(getcwd(real_current_dir_name, 2048) == NULL, ERR_BUG);
String new_dir;
new_dir.parse_utf8(real_current_dir_name);
if (!new_dir.begins_with(base)) {
try_dir = current_dir; //revert
}
}
// the directory exists, so set current_dir to try_dir // the directory exists, so set current_dir to try_dir
current_dir = try_dir; current_dir = try_dir;
ERR_FAIL_COND_V(chdir(prev_dir.utf8().get_data()) != 0, ERR_BUG); ERR_FAIL_COND_V(chdir(prev_dir.utf8().get_data()) != 0, ERR_BUG);