Skip to content

fix(rdpdr): consume query information body - #1810

Merged
Marc-André Moreau (mamoreau-devolutions) merged 1 commit into
masterfrom
copilot/rdpdr-query-fix
Aug 27, 2026
Merged

fix(rdpdr): consume query information body#1810
Marc-André Moreau (mamoreau-devolutions) merged 1 commit into
masterfrom
copilot/rdpdr-query-fix

Conversation

@mamoreau-devolutions

Copy link
Copy Markdown
Contributor

DR_DRIVE_QUERY_INFORMATION_REQ previously decoded only the
FsInformationClass field and ignored Length, Padding, and QueryBuffer,
leaving those bytes unconsumed on the wire cursor. Servers that send a
non-empty QueryBuffer (per MS-RDPEFS 2.2.3.3.8) desynchronized
subsequent PDU parsing.

Decode and encode the full fixed part (FsInformationClass, Length,
24-byte Padding) and advance the cursor past the Length-bounded
QueryBuffer on decode. Encode continues to emit an empty QueryBuffer
since this representation only retains the information class.

DR_DRIVE_QUERY_INFORMATION_REQ previously decoded only the
FsInformationClass field and ignored Length, Padding, and QueryBuffer,
leaving those bytes unconsumed on the wire cursor. Servers that send a
non-empty QueryBuffer (per MS-RDPEFS 2.2.3.3.8) desynchronized
subsequent PDU parsing.

Decode and encode the full fixed part (FsInformationClass, Length,
24-byte Padding) and advance the cursor past the Length-bounded
QueryBuffer on decode. Encode continues to emit an empty QueryBuffer
since this representation only retains the information class.
Copilot AI balanced review requested due to automatic review settings August 27, 2026 14:51
@github-actions github-actions Bot added maintainer-required Maintainer review or intervention is required risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny scope/core Touches the core architectural tier size/S Size: up to 199 counted lines and 5 files; exceeds XS in either measure labels Aug 27, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes RDPDR query-information parsing to consume the complete protocol body and prevent subsequent PDU desynchronization.

Changes:

  • Decodes and validates Length, padding, and QueryBuffer.
  • Encodes the complete fixed request body.
  • Adds round-trip, buffer-consumption, and truncation tests.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
crates/ironrdp-rdpdr/src/pdu/efs.rs Implements complete request-body handling.
crates/ironrdp-testsuite-core/tests/rdpdr/mod.rs Tests wire encoding and malformed input.

@mamoreau-devolutions
Marc-André Moreau (mamoreau-devolutions) merged commit 476e8a1 into master Aug 27, 2026
44 checks passed
@mamoreau-devolutions
Marc-André Moreau (mamoreau-devolutions) deleted the copilot/rdpdr-query-fix branch August 27, 2026 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-required Maintainer review or intervention is required risk/unknown Risk could not be determined automatically; needs maintainer-level scrutiny scope/core Touches the core architectural tier size/S Size: up to 199 counted lines and 5 files; exceeds XS in either measure

Development

Successfully merging this pull request may close these issues.

2 participants