VariantParser: Fix uninitialized ResourceParser funcs

They could cause a segfault when parsing values with ID "Resource"
as apparently we never set a valid `func` for it.

Fixes crash part of #42115.

(cherry picked from commit f3aaa713d9)
This commit is contained in:
Rémi Verschelde 2021-07-30 23:22:00 +02:00
parent 61d153a1fa
commit 69c194736d
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 4 additions and 5 deletions

View file

@ -73,10 +73,10 @@ public:
typedef Error (*ParseResourceFunc)(void *p_self, Stream *p_stream, Ref<Resource> &r_res, int &line, String &r_err_str);
struct ResourceParser {
void *userdata;
ParseResourceFunc func;
ParseResourceFunc ext_func;
ParseResourceFunc sub_func;
void *userdata = nullptr;
ParseResourceFunc func = nullptr;
ParseResourceFunc ext_func = nullptr;
ParseResourceFunc sub_func = nullptr;
};
enum TokenType {

View file

@ -853,7 +853,6 @@ void ResourceInteractiveLoaderText::open(FileAccess *p_f, bool p_skip_first_tag)
rp.ext_func = _parse_ext_resources;
rp.sub_func = _parse_sub_resources;
rp.func = nullptr;
rp.userdata = this;
}