Skip to content

Fix safe recursive traversal crashes (#54/#73)#83

Merged
DamianEdwards merged 5 commits intomainfrom
dedwards/0.10-fix-safe-recursive-traversal
May 4, 2026
Merged

Fix safe recursive traversal crashes (#54/#73)#83
DamianEdwards merged 5 commits intomainfrom
dedwards/0.10-fix-safe-recursive-traversal

Conversation

@DamianEdwards
Copy link
Copy Markdown
Owner

@DamianEdwards DamianEdwards commented May 4, 2026

Fixes #54
Fixes #73

Summary

  • Treat delegates, reflection types, and known JSON/dynamic framework payload/configuration types as terminal during recursive validation.
  • Skip terminal runtime values reached through polymorphic/object properties instead of swallowing arbitrary property getter exceptions.
  • Add regression coverage for Func, System.Text.Json.JsonSerializerOptions, and a JToken-like throwing getter.

Testing

  • dotnet restore .\MiniValidation.slnx --verbosity minimal
  • dotnet build .\MiniValidation.slnx --configuration Release --no-restore --verbosity minimal
  • dotnet test .\tests\MiniValidation.UnitTests\MiniValidation.UnitTests.csproj --configuration Release --no-restore --no-build --verbosity minimal

DamianEdwards and others added 3 commits May 3, 2026 20:53
Treat delegates, reflection types, and known JSON/dynamic framework payload types as terminal during recursive validation so property traversal does not crash on function objects or JSON configuration/payload objects.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread tests/MiniValidation.UnitTests/Recursion.cs Outdated
Comment thread tests/MiniValidation.UnitTests/TestTypes.cs Outdated
DamianEdwards and others added 2 commits May 3, 2026 21:32
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@DamianEdwards DamianEdwards merged commit 6653d19 into main May 4, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support of anonymous functions Safer recursive validation.

1 participant