Skip to content

[WIP] Fix segfault parsing marker options whose names start with a digit - #2868

Open
bigfooted wants to merge 2 commits into
developfrom
fix_boundary_parser
Open

[WIP] Fix segfault parsing marker options whose names start with a digit#2868
bigfooted wants to merge 2 commits into
developfrom
fix_boundary_parser

Conversation

@bigfooted

@bigfooted bigfooted commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

Proposed Changes

boundary condition names cannot start with values, which is pretty common for CGNS meshes.

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

COptionStringValuesList and the species-list parser split a marker option
into names and values by testing whether the first character is a letter.
Mesh formats that auto-generate boundary names routinely produce names that
begin with a digit, for example CGNS names such as 4000_QUAD_4_Bdy6. Those
were classified as values, so for

  MARKER_HEATFLUX= ( 4000_QUAD_4_Bdy6, 0.0 )

the very first field took the value branch and called back() on an empty
vector, which segfaults. The existing comment already noted the limitation.

Classify a field by whether it parses as a number in full instead. That is
unambiguous for any name that is not itself purely numeric, and such a name
cannot be told apart from a value at all, so it now raises a clear error
rather than corrupting memory.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant