[release/9.0] Fixing System.Array constructor #107565
Merged
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 #107266 to release/9.0
/cc @michaelgsharp
Customer Impact
Fixes #106534. Essentially you could do this
new TensorSpan<double>(array: new[] {1});and the type was declared as a double, but because of how the automatic type works for inline arrays, thearray: new[] {1}would actually be an array of ints. This is a safety issue as the backing memory would now be shorter than expected causing memory overwrite/access issues.Regression
[If yes, specify when the regression was introduced. Provide the PR or commit if known.]
Testing
[How was the fix verified? How was the issue missed previously? What tests were added?]
Bug was missed because I didn't understand that behavior for the auto typing of the inline arrays so I didn't have a check for it. There is now a check for it as well as tests around it.
Risk
Low risk. Tensor is going to be a preview release and was added in this 9.0 release.
IMPORTANT: If this backport is for a servicing release, please verify that:
The PR target branch is
release/X.0-staging, notrelease/X.0.If the change touches code that ships in a NuGet package, you have added the necessary package authoring and gotten it explicitly reviewed.