Fast-DDS icon indicating copy to clipboard operation
Fast-DDS copied to clipboard

[20732] Fix some leaks in XML DynamicTypes Parser (backport #4717)

Open mergify[bot] opened this issue 1 year ago • 2 comments

Description

This PR adds a regression test with the XML reported from OSS Fuzz, and performs the following two actions on every method parsing and registering a dynamic type:

#. Doing a pre-check on whether a type with the same name is already registered in the profile manager, and perform an early return in that case #. Tell DynamicTypeBuilderFactory to delete the builder when a call to XMLProfileManager::insertDynamicTypeByName fails.

@Mergifyio backport 2.13.x 2.10.x 2.6.x

Contributor Checklist

  • [x] Commit messages follow the project guidelines.

  • [x] The code follows the style guidelines of this project.

  • [x] Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally

  • N/A Any new/modified methods have been properly documented using Doxygen.

  • N/A Any new configuration API has an equivalent XML API (with the corresponding XSD extension)

  • [x] Changes are ABI compatible.

  • [x] Changes are API compatible.

  • N/A New feature has been added to the versions.md file (if applicable).

  • N/A New feature has been documented/Current behavior is correctly described in the documentation.

  • [x] Applicable backports have been included in the description.

Reviewer Checklist

  • [x] The PR has a milestone assigned.
  • [x] The title and description correctly express the PR's purpose.
  • [x] Check contributor checklist is correct.
  • [x] Check CI results: changes do not issue any warning.
  • [x] Check CI results: failing tests are unrelated with the changes.

This is an automatic backport of pull request #4717 done by [Mergify](https://mergify.com).

mergify[bot] avatar Apr 26 '24 10:04 mergify[bot]

Cherry-pick of 8cb447bb25032f646685c923da866b733fd78aff has failed:

On branch mergify/bp/2.6.x/pr-4717
Your branch is up to date with 'origin/2.6.x'.

You are currently cherry-picking commit 8cb447bb2.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   src/cpp/rtps/xmlparser/XMLDynamicParser.cpp
	modified:   src/cpp/rtps/xmlparser/XMLProfileManager.cpp
	new file:   test/unittest/xmlparser/regressions/20732_profile_bin.xml

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   include/fastrtps/xmlparser/XMLProfileManager.h
	both modified:   test/unittest/xmlparser/XMLParserTests.cpp

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

mergify[bot] avatar Apr 26 '24 10:04 mergify[bot]

@MiguelCompany would you mind addressing the conflicts here ?

Mario-DL avatar May 06 '24 14:05 Mario-DL

Closing. We will backport #4735 instead

MiguelCompany avatar May 07 '24 12:05 MiguelCompany