fix: prevent segfault in ResolvePlugin when instance is missing

This commit is contained in:
ems
2026-06-25 23:23:22 +02:00
parent 2a5345ba8c
commit 99a5b2e2be
3 changed files with 42 additions and 3 deletions
+1 -2
View File
@@ -5952,15 +5952,14 @@ void mjCModel::ResolvePlugin(mjCBase* obj, const std::string& plugin_name,
else if (!*plugin_instance) {
*plugin_instance =
static_cast<mjCPlugin*>(FindObject(mjOBJ_PLUGIN, plugin_instance_name));
(*plugin_instance)->plugin_slot = plugin_slot;
if (!*plugin_instance) {
throw mjCError(
obj, "unrecognized name '%s' for plugin instance", plugin_instance_name.c_str());
}
(*plugin_instance)->plugin_slot = plugin_slot;
if (plugin_slot != -1 && plugin_slot != (*plugin_instance)->plugin_slot) {
throw mjCError(
obj, "'plugin' attribute does not match that of the instance");
}
plugin_slot = (*plugin_instance)->plugin_slot;
}
}