Versions tested:
Fiendish's aard package, 5.06 pre
Latest source from github
How to create a crash:
- Open a world (aardwolf in my case) with many aard_* plugins installed
- Go to plugins, try to add Omit_Blank_Lines
- Mushclient.exe crashes with access violation
Also:
- Clear the world of all plugins
- Add Omit_Blank_Lines, no crash
- Try to add some aard_* plugin (I tried aardwolf_gmcp_mapper)
- Crash
VS debugging shows a null pointer exception of "this" being empty. Call stack:
MUSHclient.exe!CScriptEngine::GetDispid(const ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > & strName) - line 485
MUSHclient.exe!CMUSHclientDoc::PluginSupports(const char * PluginID, const char * Routine) - line 482
MUSHclient.exe!L_PluginSupports(lua_State * L) - line 4835
CMushclientDoc::PluginSupports does not check whether pPlugin -> m_scriptEngine is NULL. This check is being done in CMUSHclientDoc::CallPlugin, though.
I would suggest adding a null check of m_scriptEngine to CMushclientDoc::PluginSupports. However, I'm no expert at C++ let alone mushclient client code, so please forgive my ignorance if this behavior is intended.
Fiendish's aard package, 5.06 pre
Latest source from github
How to create a crash:
- Open a world (aardwolf in my case) with many aard_* plugins installed
- Go to plugins, try to add Omit_Blank_Lines
- Mushclient.exe crashes with access violation
Also:
- Clear the world of all plugins
- Add Omit_Blank_Lines, no crash
- Try to add some aard_* plugin (I tried aardwolf_gmcp_mapper)
- Crash
VS debugging shows a null pointer exception of "this" being empty. Call stack:
MUSHclient.exe!CScriptEngine::GetDispid(const ATL::CStringT<char,StrTraitMFC<char,ATL::ChTraitsCRT<char> > > & strName) - line 485
MUSHclient.exe!CMUSHclientDoc::PluginSupports(const char * PluginID, const char * Routine) - line 482
MUSHclient.exe!L_PluginSupports(lua_State * L) - line 4835
CMushclientDoc::PluginSupports does not check whether pPlugin -> m_scriptEngine is NULL. This check is being done in CMUSHclientDoc::CallPlugin, though.
I would suggest adding a null check of m_scriptEngine to CMushclientDoc::PluginSupports. However, I'm no expert at C++ let alone mushclient client code, so please forgive my ignorance if this behavior is intended.