[release/9.0] Harden parsing of [Range] attribute values #59077
Merged
+77
−2
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.
Backport of #59043 to release/9.0
/cc @captainsafia
Description
This change hardens the parsing logic for
[Range]
attributes to handle:minimum
andmaximum
keywords in the OpenAPI schema, likeDateTime
.RangeAttribute.ParseLimitsInInvariantCulture
.For scenarios where the range value is too large to be represented as a decimal, this implementation will no-op and not set the corresponding minimum or maximum in the OpenAPI document.
Fixes #57390
Customer Impact
Prevents unhandled exceptions when customers use the
Range(object, object)
overloads of theRange
attribute instead of those that take a double/integer. There's no immediate workarounds for this bug outside of removing the attribute.Regression?
Risk
Change localized to
Range
attribute handling in OpenAPI package.Verification
Packaging changes reviewed?