diff --git a/src/cpp/xmlparser/XMLDynamicParser.cpp b/src/cpp/xmlparser/XMLDynamicParser.cpp
index b12ec644821..8ebd350c94b 100644
--- a/src/cpp/xmlparser/XMLDynamicParser.cpp
+++ b/src/cpp/xmlparser/XMLDynamicParser.cpp
@@ -1422,7 +1422,17 @@ DynamicType::_ref_type XMLParser:: parseXMLMemberDynamicType(
if (!isArray)
{
- member = factory->create_map_type(key_type, value_type, length)->build();
+ auto temp_map = factory->create_map_type(key_type, value_type, length);
+ if (temp_map)
+ {
+ member = temp_map->build();
+ }
+ else
+ {
+ EPROSIMA_LOG_ERROR(XMLPARSER,
+ "Error parsing map member with name = " << memberName);
+ return {};
+ }
}
else
{
diff --git a/test/unittest/xmlparser/XMLParserTests.cpp b/test/unittest/xmlparser/XMLParserTests.cpp
index 98010b49ed8..a89e04386e0 100644
--- a/test/unittest/xmlparser/XMLParserTests.cpp
+++ b/test/unittest/xmlparser/XMLParserTests.cpp
@@ -87,6 +87,8 @@ TEST_F(XMLParserTests, regressions)
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22054_profile_bin.xml", root));
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22101_profile_bin.xml", root));
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22535_profile_bin.xml", root));
+ EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22843_profile_bin.xml", root));
+ EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22844_profile_bin.xml", root));
Log::Flush();
}
diff --git a/test/unittest/xmlparser/regressions/22843_profile_bin.xml b/test/unittest/xmlparser/regressions/22843_profile_bin.xml
new file mode 100644
index 00000000000..8b0bc414388
--- /dev/null
+++ b/test/unittest/xmlparser/regressions/22843_profile_bin.xml
@@ -0,0 +1 @@
+a_S"is_dlt_profile="true"/>a_S"is_dlt_profile="true"/>a_S"is_dlt_profile="true"/>a_S"is_dlt_profile="true"/>a_S"is_dlt_profile="true"/>a_S"is_dlt_profile="true"/>a_S"is_dlt_profile="true"/>a_S"is_ddev/Abensions="̕" sequenceMaxLengd="8978014831475445" /> 9["ui" ="777777777628888889[" /> d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmZ" /> d d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> d >lt_proferi"t=lue"/>a_S"is_drofile="9true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT46" /> d >lt_profile="true"/>a_S"is_drofile="true"/>a_reapre droile_name="dev/Abibitmask bit_boun/dev/shm/fuzz-r2BeLTpe>Abibitmask bit_boun/dev/shm/fuzz-r2BeLTd="8978014831475445" /> 9["ui" ="777777777628888889[" /> d >lt_profile="true"/>a_S"is_drofile="true"/>a_reapre drofile_name="dev/AbibitmasIhKlmT0" /> d m/typedef type="int32" name=" f"/>>lt_profile="true"/>a_S"is_drofile="true"/>a_reapre drofile_name="dev/Abibitmask bit_boun/dev/shm/fuzz-r2BeLTd="8978014831475445" /> 0["ui" ="777777777628888889[" /> 9["ui" ="777777777628888889[" /> 9["ui" ="777777777628888889[" /> d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> d d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> 9["ui" ="777777777628888889[" /> d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> dceMaxLengd="8978014831475445" /> 9["ui" ="77777777762rrayDimensions="̕" sequenceMaxLength="857" /> d >lt_proferi"t=lue"/>a_S"is_drofile="9true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT46" /> d >lt_profile="true"/>a_S"is_drofile="true"/>a_reapre droile_name="dev/Abibitmask bit_boun/dev/shm/fuzz-r2BeLToa*t/"key_type="int64" mapMaxLengpe="octet" mapMaxLength="-0"/> lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> 9["ui" ="777777777628888889[" /> d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> d d >lt_profile="true"/>a_S"is_drofile="true/dev/shm/fuzz-MoxGzZ"/>a_reapre drofile_name="dev/AbibitmasIhKlmT45" /> 9["ui" ="777777777628888889[" /> dEyteppyef type="int16" name="floa*t/"key_typeype>Abibitmask bit_boun/dev/shm/fuzz-r2BeLTd="8978014831475445th="0" />Abibitmask bit_boun/dev/shm/fuzz-r2BeLTd="8978014831475445" /> 9["ui" ="777777777628888889[" /> > d >lt_profile="true"/>a_S"is_droriftel="ue"/>a_reapre drofile_name="[dev/-1!,-1/hmsz-d="897801483147545" />
\ No newline at end of file
diff --git a/test/unittest/xmlparser/regressions/22844_profile_bin.xml b/test/unittest/xmlparser/regressions/22844_profile_bin.xml
new file mode 100644
index 00000000000..3499e9afee6
--- /dev/null
+++ b/test/unittest/xmlparser/regressions/22844_profile_bin.xml
@@ -0,0 +1 @@
++mv/>>>>lfil""/Abiu42949672951$>>>>>Hlfil"/>"$/>>lfil""/>type>>" />>>" />>>" />>>" />>>" />>>" />>lfil""/>>lfil"/>" />>lfil""/>>Hlfil"/>" />>lt_""/>
\ No newline at end of file