$ the-wire · showcase
Orleans hardens grain directory and storage providers against null inputs
By RepoJournal · Filed · About .NET
Five Orleans PRs ship CA1062-driven null validation across Azure Table, Firestore, and the serialization test kit, closing a class of null-dereference bugs before they reach production.
Orleans is tightening input validation across its persistence and directory providers. The Azure grain directory [1], Firestore grain directory [3], and Azure grain storage providers [4] now validate caller-provided addresses, options, and grain-state inputs before any Table or Blob operation. The Azure storage fix addresses nine CA1062 findings, Firestore four, and the directory work also preserves the DI-owned cluster options invariant via a targeted suppression.
Related work extends the same rigor to the serialization test kit [5] and removes a stateless worker directory race in the runtime tests [1]. The test kit now validates tester constructor inputs before serializer service creation and makes Batch reject a null source at call time, not deferred enumeration. These are low-risk hardening changes; consumers should see no behavior change beyond earlier ArgumentNullException throws where inputs were previously dereferenced unchecked. Analyzer audit run 33948903771 flagged the persistence project for not enabling CA1062 across its full compile surface.
Elsewhere, Roslyn [6] and WPF [7] both pulled in routine source updates from dotnet/dotnet. As Reuben Bond's summary for the Azure storage work puts it, the providers "dereferenced caller-controlled options and grain-state inputs before validating them" [4]. No breaking changes or security advisories are attached to any of today's updates.
Action items
References
- [1] test(runtime): remove stateless worker directory race (#11163) ↗ dotnet/orleans
- [2] fix(azure): validate grain directory inputs ↗ dotnet/orleans
- [3] fix(firestore): validate grain directory inputs ↗ dotnet/orleans
- [4] fix(azure): validate grain storage inputs ↗ dotnet/orleans
- [5] fix(serialization): validate test kit inputs ↗ dotnet/orleans
- [6] [main] Source code updates from dotnet/dotnet (#85180) ↗ dotnet/roslyn
- [7] [main] Source code updates from dotnet/dotnet (#11902) ↗ dotnet/wpf