From 97d99c84ce5f180e10c7d39ef659bb32c9f37548 Mon Sep 17 00:00:00 2001 From: Nimrod Gileadi Date: Mon, 23 Oct 2023 10:07:07 -0700 Subject: [PATCH] Delete the temporary mjData if model reference validation fails. PiperOrigin-RevId: 575852845 Change-Id: I2146dbc510b48c310ac338adcd5d53cb9f38b383 --- src/user/user_model.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/user/user_model.cc b/src/user/user_model.cc index 855aa400..1dfed5fc 100644 --- a/src/user/user_model.cc +++ b/src/user/user_model.cc @@ -3098,6 +3098,7 @@ void mjCModel::TryCompile(mjModel*& m, mjData*& d, const mjVFS* vfs) { m->opt.disableflags |= mjDSBL_CONTACT; d = mj_makeData(m); if (!d) { + mj_deleteModel(m); throw mjCError(0, "could not create mjData"); } @@ -3125,6 +3126,8 @@ void mjCModel::TryCompile(mjModel*& m, mjData*& d, const mjVFS* vfs) { // assert that model has valid references const char* validationerr = mj_validateReferences(m); if (validationerr) { // SHOULD NOT OCCUR + mj_deleteData(d); + mj_deleteModel(m); throw mjCError(0, validationerr); } // test forward simulation