librlist: workaround xml buffer size issue in some hwloc versions #5690
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem: With some versions of libxml, the XML load function does not tolerate a buffer length that includes the trailing NUL character. In hwloc 2.10.0, hwloc_topology_set_xmlbuffer() was changed to decrement the length before passing to the underlying XML call, so this effectively means that hwloc now requires the NUL character be included in length, but current librlist code does not include it to workaround the problem in v2.10.
Since there is no way to determine if NUL should or should not be included in hwloc_topology_set_xmlbuffer(), include the NUL by default, but retry without it if the first call fails.
Fixes #5689