Check WSLCHandle discriminant before accessing union member#40329
Open
benhillis wants to merge 1 commit intofeature/wsl-for-appsfrom
Open
Check WSLCHandle discriminant before accessing union member#40329benhillis wants to merge 1 commit intofeature/wsl-for-appsfrom
benhillis wants to merge 1 commit intofeature/wsl-for-appsfrom
Conversation
DmesgOutput is a discriminated union (WSLCHandle). Accessing Handle.File without verifying Type == WSLCHandleTypeFile is undefined behavior when the active member is Pipe or Socket. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes undefined behavior in the Windows service VM initialization path by ensuring WSLCHandle’s discriminant is checked before reading the Handle.File union member when wiring up the optional dmesg output handle.
Changes:
- Guard access to
Settings->DmesgOutput.Handle.Fileby checkingSettings->DmesgOutput.Type == WSLCHandleTypeFilefirst. - Prevent invalid/undefined reads of the
WSLCHandleunion when the active member isPipeorSocket.
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
DmesgOutput is a discriminated union (WSLCHandle). Accessing Handle.File without verifying Type == WSLCHandleTypeFile is undefined behavior when the active member is Pipe or Socket. Adds the type check before accessing the File member.