$ the-wire · showcase
Android NativeAOT runtime packs fixed, CoreCLR parser hardened, runtime JIT and GZipStream repairs land
By RepoJournal · Filed · About .NET · Composed from the cited sources · methodology
dotnet/android removed the workload rewrite that made dotnet publish -p:PublishAot=true request runtime-pack versions missing from NuGet.org, the highest-impact fix in a day otherwise dominated by automated codeflow.
The Android RC1 workload stamped its build-time MicrosoftNETCoreAppRefPackageVersion into customer projects and rewrote the .NET SDK's NativeAOT KnownRuntimePack metadata. When the workload was built against 11.0.0-rc.1.26428.117 but installed with the 11.0.100-rc.1.26425.128 SDK, publishing with AOT requested runtime packs that did not exist on NuGet.org [1]. The Android-side rewrite is now removed, leaving the SDK to advertise the packs itself [1].
The CoreCLR Debug environment override parser in dotnet/android could parse uninitialized bytes or read past its allocation after short reads, undersized payload accounting, malformed headers, zero widths, or unterminated fixed-width strings [2]. It now continues through normal short reads and EINTR and parses only the bytes actually read, bounds and validates both fixed-width hexadecimal header fields, and rejects zero or overflowing widths before arithmetic [2].
Two dotnet/runtime fixes address concrete misbehavior. AMD64 fast tailcall epilogs used R10 as the scratch register for GS cookie checks while SecretStubParam is also passed in R10, so the epilog could overwrite the argument before jumping to the target; the fix moves the GS cookie check to R11 when the tailcall carries SecretStubParam and passes the tailcall context through LSRA [3]. Separately, GZipStream consumed but never rewound a stray trailing 0x1F byte on seekable streams opened with leaveOpen: true, silently losing that byte for whoever read the base stream next [4].
The Windows x64 AllSubsets_Mono_Minijit_RuntimeTests leg has been removed from eng/pipelines/runtime.yml, suspending that leg for PR and rolling builds after repeated FAST_FAIL_SET_CONTEXT_DENIED failures across 46 process-level work items [5]. dotnet/runtime also removed functional cDAC fallbacks, keeping legacy DAC interfaces only for Debug comparison and lifetime management and returning E_NOTIMPL for unsupported cDAC operations [6]. In a different failure class, Wasm portable-entrypoint slow paths retained a PrestubMethodFrame while invoking a resolved R2R body, letting MethodBase.GetCurrentMethod accept its own prestub frame as the caller [7].
The remaining traffic is machine-generated. dotnet/dotnet took codeflow updates from dotnet/sdk, dotnet/wpf, dotnet/aspnetcore, nuget/nuget.client, and dotnet/efcore [8][9][10][11][12], dotnet/versions merged Docker image info [13], dotnet/android checked in localized files via OneLocBuild and a LEGO hand-back [14][15], and dotnet/android-api-docs imported 443 documentation channels across Android.Service.Autofill with support for String/CharSequence aliases and deprecation-first overload summaries [16].
Action items
- → If you publish Android with PublishAot=true on the 11.0.100-rc.1.26425.128 SDK, update the workload to the build containing the KnownRuntimePack rewrite removal [ref:14] dotnet/android [immediate]
- → Rebuild against the GZipStream fix if you read a seekable leaveOpen base stream after decompressing a gzip member [ref:18] dotnet/runtime [plan]
- → Audit cDAC consumers for reliance on fallback behavior; unsupported operations now return E_NOTIMPL and DOTNET_ENABLE_CDAC no longer forwards ICLRDataEnumMemoryRegions [ref:20] dotnet/runtime [monitor]
References
- [1] [NativeAOT] Let the SDK select runtime packs (#12750) ↗ dotnet/android
- [2] [native] Harden CoreCLR environment override parsing ↗ dotnet/android
- [3] JIT: avoid GS cookie conflict with secret stub argument in non-standard register ↗ dotnet/runtime
- [4] Rewind trailing 0x1F byte in GZipStream on seekable leaveOpen streams ↗ dotnet/runtime
- [5] Temporarily disable Windows x64 Mono MiniJIT runtime tests (#133747) ↗ dotnet/runtime
- [6] Remove functional cDAC fallbacks (#132720) ↗ dotnet/runtime
- [7] [wasm] Fix caller identification across R2R prestub transitions (#133707) ↗ dotnet/runtime
- [8] [main] Source code updates from dotnet/sdk ↗ dotnet/dotnet
- [9] [main] Source code updates from dotnet/wpf ↗ dotnet/dotnet
- [10] [main] Source code updates from dotnet/aspnetcore ↗ dotnet/dotnet
- [11] [main] Source code updates from nuget/nuget.client ↗ dotnet/dotnet
- [12] [main] Source code updates from dotnet/efcore ↗ dotnet/dotnet
- [13] Merging Docker image info updates from build ↗ dotnet/versions
- [14] Localized file check-in by OneLocBuild Task: Build definition ID 17928: Build ID 15289853 ↗ dotnet/android
- [15] LEGO: Pull request from juno/hb_6dddf33b-c6da-43d8-ac04-14d2c339cb00_20260911093129150 to main ↗ dotnet/android
- [16] Add XML documentation for Android.Service.Autofill ↗ dotnet/android-api-docs