Allow PAKID_CORE_CLIENTID_CONFIRM in RDPDR_CHANNEL_STATE_NAME_REQUEST #10200
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.
Occasionally servers can send this sequence which breaks the channel state machine leading to all smartcard operations failing. This patch modifies the state transitions to tolerate the observed sequence of operations.
In my testing, this fixes the issue I mentioned in #9506 (comment) - but it's maybe not the best way to fix the problem. For example it's possible that adding RDPDR_CHANNEL_STATE_NAME_REQUEST to the allowable states in PAKID_CORE_CLIENTID_CONFIRM breaks something else I didn't see in my testing - I'm not familiar enough with this codebase or protocol to say for sure. So consider this PR a suggestion and a chance for discussion rather than a perfect solution :)