diff options
author | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2016-10-04 15:02:36 +0200 |
---|---|---|
committer | Fabio Alessandrelli <fabio.alessandrelli@gmail.com> | 2016-10-04 16:07:45 +0200 |
commit | e59820ac94b7c9706298d5559608937dfca332e5 (patch) | |
tree | 6e4cf8e3940a5a1d8d0cd1d7cf7ca8053f34d2f8 /modules/gdscript/gd_parser.cpp | |
parent | 78d97b060a6873a454e710380cb9ef1bde5e4c65 (diff) | |
download | redot-engine-e59820ac94b7c9706298d5559608937dfca332e5.tar.gz |
Add warning when (pre)loading paths with leading / (#4280 - #3106)
Diffstat (limited to 'modules/gdscript/gd_parser.cpp')
-rw-r--r-- | modules/gdscript/gd_parser.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/gdscript/gd_parser.cpp b/modules/gdscript/gd_parser.cpp index 8f4f5ef4ca..2ec27507c2 100644 --- a/modules/gdscript/gd_parser.cpp +++ b/modules/gdscript/gd_parser.cpp @@ -307,6 +307,10 @@ GDParser::Node* GDParser::_parse_expression(Node *p_parent,bool p_static,bool p_ _set_error("expected string constant as 'preload' argument."); return NULL; } + if (path.begins_with("/")) { + _set_error("Paths cannot start with '/', absolute paths must start with \'res://\', \'user://\', or \'local://\'"); + return NULL; + } if (!path.is_abs_path() && base_path!="") path=base_path+"/"+path; path = path.replace("///","//").simplify_path(); @@ -2109,6 +2113,10 @@ void GDParser::_parse_extends(ClassNode *p_class) { _set_error("'extends' constant must be a string."); return; } + if (((String)(constant)).begins_with("/")) { + _set_error("Paths cannot start with '/', absolute paths must start with \'res://\', \'user://\', or \'local://\'"); + return; + } p_class->extends_file=constant; tokenizer->advance(); |