Skip to content

Fix out of buffer read when copying from a non-null-terminated string

Created by: dragmz

A non-null terminated string is passed to the copy_from method on this stack:

godot.windows.tools.32.exe!String::copy_from(const wchar_t * p_cstr, const int p_clip_to)
godot.windows.tools.32.exe!String::String(const wchar_t * p_str, int p_clip_to_len)
godot.windows.tools.32.exe!StringBuilder::as_string()
godot.windows.tools.32.exe!ShaderCompilerGLES2::_dump_node_code(ShaderLanguage::Node * p_node, int p_level, ShaderCompilerGLES2::GeneratedCode & r_gen_code, ShaderCompilerGLES2::IdentifierActions & p_actions, const ShaderCompilerGLES2::DefaultIdentifierActions & p_default_actions, bool p_assigning)
godot.windows.tools.32.exe!ShaderCompilerGLES2::_dump_node_code(ShaderLanguage::Node * p_node, int p_level, ShaderCompilerGLES2::GeneratedCode & r_gen_code, ShaderCompilerGLES2::IdentifierActions & p_actions, const ShaderCompilerGLES2::DefaultIdentifierActions & p_default_actions, bool p_assigning)
godot.windows.tools.32.exe!ShaderCompilerGLES2::_dump_node_code(ShaderLanguage::Node * p_node, int p_level, ShaderCompilerGLES2::GeneratedCode & r_gen_code, ShaderCompilerGLES2::IdentifierActions & p_actions, const ShaderCompilerGLES2::DefaultIdentifierActions & p_default_actions, bool p_assigning)
godot.windows.tools.32.exe!ShaderCompilerGLES2::_dump_node_code(ShaderLanguage::Node * p_node, int p_level, ShaderCompilerGLES2::GeneratedCode & r_gen_code, ShaderCompilerGLES2::IdentifierActions & p_actions, const ShaderCompilerGLES2::DefaultIdentifierActions & p_default_actions, bool p_assigning)
godot.windows.tools.32.exe!ShaderCompilerGLES2::_dump_node_code(ShaderLanguage::Node * p_node, int p_level, ShaderCompilerGLES2::GeneratedCode & r_gen_code, ShaderCompilerGLES2::IdentifierActions & p_actions, const ShaderCompilerGLES2::DefaultIdentifierActions & p_default_actions, bool p_assigning)
godot.windows.tools.32.exe!ShaderCompilerGLES2::compile(VisualServer::ShaderMode p_mode, const String & p_code, ShaderCompilerGLES2::IdentifierActions * p_actions, const String & p_path, ShaderCompilerGLES2::GeneratedCode & r_gen_code)
godot.windows.tools.32.exe!RasterizerStorageGLES2::_update_shader(RasterizerStorageGLES2::Shader * p_shader)
godot.windows.tools.32.exe!RasterizerStorageGLES2::update_dirty_shaders()
godot.windows.tools.32.exe!RasterizerStorageGLES2::update_dirty_resources()
godot.windows.tools.32.exe!RasterizerGLES2::begin_frame(double frame_step)

Merge request reports