Fix null pointer deref for unknown class names.
PiperOrigin-RevId: 610391077 Change-Id: I5abd62ff46e31e788f06fe111adb3c25287d4fdc
This commit is contained in:
committed by
Copybara-Service
parent
b47d97652e
commit
8679c9fc59
@@ -33,12 +33,13 @@ namespace mujoco {
|
||||
namespace {
|
||||
|
||||
using ::std::string;
|
||||
using ::testing::AllOf;
|
||||
using ::testing::Eq;
|
||||
using ::testing::FloatEq;
|
||||
using ::testing::HasSubstr;
|
||||
using ::testing::IsNan;
|
||||
using ::testing::IsNull;
|
||||
using ::testing::NotNull;
|
||||
using ::testing::FloatEq;
|
||||
|
||||
using XMLReaderTest = MujocoTest;
|
||||
|
||||
@@ -462,6 +463,29 @@ TEST_F(XMLReaderTest, RepeatedDefaultName) {
|
||||
EXPECT_THAT(error.data(), HasSubstr("repeated default class name"));
|
||||
}
|
||||
|
||||
TEST_F(XMLReaderTest, InvalidDefaultClassName) {
|
||||
static constexpr char xml[] = R"(
|
||||
<mujoco>
|
||||
<default>
|
||||
<default class="sphere">
|
||||
<geom type="sphere" size="1"/>
|
||||
</default>
|
||||
</default>
|
||||
<worldbody>
|
||||
<body>
|
||||
<geom class="invalid"/>
|
||||
</body>
|
||||
</worldbody>
|
||||
</mujoco>
|
||||
)";
|
||||
std::array<char, 1024> error;
|
||||
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
|
||||
ASSERT_THAT(model, IsNull()) << error.data();
|
||||
EXPECT_THAT(error.data(),
|
||||
AllOf(HasSubstr("unknown default class name 'invalid'"),
|
||||
HasSubstr("Element 'geom'"), HasSubstr("line 10")));
|
||||
}
|
||||
|
||||
// ------------------------ test including -------------------------------------
|
||||
|
||||
// credit: https://www.mjt.me.uk/posts/smallest-png/
|
||||
|
||||
Reference in New Issue
Block a user