Repository navigation
Fix QuicStream send buffer leak - #135591
Merged
Merged
Conversation
|
Azure Pipelines: Successfully started running 3 pipeline(s). 13 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
Contributor
|
Tagging subscribers to this area: @karelz, @dotnet/ncl |
asad24-dev
force-pushed
the
fix-quic-send-buffer-leak
branch
from
October 11, 2026 15:46
cefad4f to
ff728b9
Compare
Member
|
Product code change looks OK. But we rarely use reflection for tests, so if you cannot come up with any other way to test this, I'd rather not introduce the test. Provided that you've validated this with your repro manually. |
asad24-dev
force-pushed
the
fix-quic-send-buffer-leak
branch
from
October 12, 2026 12:49
ff728b9 to
0930869
Compare
Contributor
Author
|
Thanks for the review! I've removed the reflection-based test from the PR. I validated the fix using that test before removing it: the original implementation failed, while the fixed implementation passed both locally and in CI. The full The PR now contains only the two production changes. |
rzikm
approved these changes
Oct 12, 2026
asad24-dev
marked this pull request as ready for review
October 12, 2026 16:27
2 of 6 tasks
ManickaP
approved these changes
Oct 13, 2026
This was referenced Oct 13, 2026
WilliamSmithEdward
added a commit
to WilliamSmithEdward/embedio-neo
that referenced
this pull request
Oct 13, 2026
.NET 10.0.13 (13 October 2026) is a security release with 44 CVEs, including CVE-2026-105016, a remote code execution vulnerability in Microsoft QUIC that MSRC rates Critical for .NET installed on Windows. Runtime 10.0.13 bundles msquic.dll 2.5.11; 10.0.12 bundled 2.5.10. The one-week cooldown is skipped for this release. global.json and the workflows' dotnet-version pins move to SDK 10.0.402. The MAUI workload set stays at 10.0.401: a workload set belongs to the 10.0.400 feature band, and none was published for 10.0.402. The shipped dependency minimums move from 10.0.12 to 10.0.13: System.Threading.RateLimiting (core), System.Text.Json (core .NET Standard 2.0 asset), and Microsoft.Extensions.DependencyInjection and Microsoft.Extensions.Hosting.Abstractions (DI package). Every lock file is regenerated with SDK 10.0.402, and each change is a 10.0.12 to 10.0.13 move, including the implicit Microsoft.NET.ILLink.Tasks and ILCompiler references. The MAUI locks need the workload to regenerate, so they mirror the same two entries with the hashes NuGet recorded in the core lock. coverlet.MTP's Microsoft.Extensions.Configuration dependencies stay at the 10.0.12 it requests. The test probes that pin an exact runtime (RuntimeCloseProbe, AppContainerSmoke and the native dependency probe template) move to 10.0.13, so they exercise the runtime the repository now builds with. The docs record what the release contains. The macOS accept fix for dotnet/runtime#121848 (backport #133567) ships in 10.0.13; EmbedIO keeps its IPv6 accept worker. The System.Net.Quic send-buffer fix (dotnet/runtime#135591) is not in 10.0.13. CONTRIBUTING, SECURITY, the MAUI validation guide and the changelog describe the new pins.
WilliamSmithEdward
added a commit
to WilliamSmithEdward/embedio-neo
that referenced
this pull request
Oct 13, 2026
.NET 10.0.13 (13 October 2026) is a security release with 44 CVEs, including CVE-2026-105016, a remote code execution vulnerability in Microsoft QUIC that MSRC rates Critical for .NET installed on Windows. Runtime 10.0.13 bundles msquic.dll 2.5.11; 10.0.12 bundled 2.5.10. The one-week cooldown is skipped for this release. global.json and the workflows' dotnet-version pins move to SDK 10.0.402. The MAUI workload set stays at 10.0.401, a set of the 10.0.400 feature band, so the MAUI apps keep the 10.0.12 Mono runtime. Workload set 10.0.402 carries 10.0.13 but moves the Apple packs to the Xcode 27.0 release; that move is a separate change. The shipped dependency minimums move from 10.0.12 to 10.0.13: System.Threading.RateLimiting (core), System.Text.Json (core .NET Standard 2.0 asset), and Microsoft.Extensions.DependencyInjection and Microsoft.Extensions.Hosting.Abstractions (DI package). Every lock file is regenerated with SDK 10.0.402. Each resolved version change is 10.0.12 to 10.0.13, including the implicit Microsoft.NET.ILLink.Tasks and ILCompiler references; the dependency-free HttpsCertificates lock also moves from format version 1 to 2. The MAUI locks need the workload to regenerate, so they mirror the same two entries with the hashes NuGet recorded in the core lock. coverlet.MTP's Microsoft.Extensions.Configuration dependencies stay at the 10.0.12 it requests. The test probes that pin an exact runtime (RuntimeCloseProbe, AppContainerSmoke and the native dependency probe template) move to 10.0.13, so they exercise the runtime the repository now builds with. The docs record what the release contains. The macOS accept fix for dotnet/runtime#121848 (backport dotnet/runtime#133567) ships in 10.0.13; EmbedIO keeps its IPv6 accept worker. The System.Net.Quic send-buffer fix (dotnet/runtime#135591) is not in 10.0.13. CONTRIBUTING, SECURITY, the MAUI validation guide and the changelog describe the new pins.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Fix QuicStream send buffer leak
Fixes #135583
MsQuicBuffersis currently a struct. When_sendBuffersis assigned toMsQuicContextSafeHandle.Disposable, the handle receives a boxed copy beforethe first send allocates its native
QUIC_BUFFERarray. When the handle isreleased, it disposes that stale copy rather than the live buffer owner.
Make
MsQuicBuffersa sealed class so the stream and safe handle share thesame buffer owner. The existing safe-handle disposal path is unchanged: native
buffers are still released only when the stream handle is actually released.
Validation:
Expected: 0,Actual: 1).