Commit e7e7a11
## Description
Fixes a use-after-free in QUIC path migration where a stale/removed path
could be promoted into Paths[0] during post-processing.
### Root Cause
When QuicConnReplaceRetiredCids is called during NEW_CONNECTION_ID frame
processing, it may invoke QuicPathRemove, which frees the path. However,
QuicConnRecvPostProcessing later attempts to promote that same path (via
the *Path pointer) if it has non-probing frames and a new largest packet
number — without verifying the path is still valid.
### Fix
Add a (*Path)->InUse check in QuicConnRecvPostProcessing before
promoting a path to active. This ensures we never promote a path that
has already been removed by QuicPathRemove.
## Testing
CI and validation on a repro of the issue
## Documentation
N/A
Co-authored-by: Sujeet Kumar <sujkum@microsoft.com>
1 parent ea4ea35 commit e7e7a11
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5572 | 5572 | | |
5573 | 5573 | | |
5574 | 5574 | | |
5575 | | - | |
| 5575 | + | |
5576 | 5576 | | |
5577 | 5577 | | |
5578 | 5578 | | |
| |||
0 commit comments