Skip to content

Commit 3a7b0e9

Browse files
authored
Fix oss-fuzz XMLParserTest over wstring_builder being nullptr (#5761)
* Refs #23030: Add test to regressions on XMLParserTests Signed-off-by: Javier Gil Aviles <[email protected]> * Refs #23030: Add case nullptr for wstring_builder on XMLDynamicParser.cpp Signed-off-by: Javier Gil Aviles <[email protected]> --------- Signed-off-by: Javier Gil Aviles <[email protected]>
1 parent 54ebfc5 commit 3a7b0e9

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

src/cpp/xmlparser/XMLDynamicParser.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -1833,6 +1833,13 @@ DynamicType::_ref_type XMLParser:: parseXMLMemberDynamicType(
18331833

18341834
DynamicTypeBuilder::_ref_type wstring_builder = factory->create_wstring_type(bound);
18351835

1836+
if (nullptr == wstring_builder)
1837+
{
1838+
EPROSIMA_LOG_ERROR(XMLPARSER,
1839+
"Error creating wstring type: " << memberType);
1840+
return {};
1841+
}
1842+
18361843
if (!isArray)
18371844
{
18381845
member = wstring_builder->build();

test/unittest/xmlparser/XMLParserTests.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ TEST_F(XMLParserTests, regressions)
8989
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22535_profile_bin.xml", root));
9090
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22843_profile_bin.xml", root));
9191
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/22844_profile_bin.xml", root));
92+
EXPECT_EQ(XMLP_ret::XML_ERROR, XMLParser::loadXML("regressions/23030_profile_bin.xml", root));
9293
Log::Flush();
9394
}
9495

test/unittest/xmlparser/regressions/23030_profile_bin.xml

+1
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)