Skip to content

fix(graphics): draw an empty ClearCodec V-bar cache entry instead of failing - #2433

Open
shellden-dev (shellden-dev) wants to merge 1 commit into
Devolutions:masterfrom
shelldenhq:shellden/clearcodec-vbar-cache-miss
Open

shellden-dev (shellden-dev) wants to merge 1 commit into
Devolutions:masterfrom
shelldenhq:shellden/clearcodec-vbar-cache-miss

Conversation

@shellden-dev

@shellden-dev shellden-dev (shellden-dev) commented Nov 14, 2026 •

Copy link
Copy Markdown

A ClearCodec bands layer can refer to a V-bar cache entry that the decoder never stored. Windows servers do this, for example after a cache reset. The decoder returned an error for the whole update, so text-heavy regions from Windows hosts stayed unpainted.

FreeRDP reads such an entry as an empty bar and keeps decoding. Now a full V-bar hit on an empty entry gives a column of zero pixels, and a short V-bar hit on an empty entry gives zero pixel rows, so the column is the band background. The yOn bound check still applies.

Tested with new decoder tests in ironrdp-testsuite-core for both cache hit kinds and the yOn check; the first two fail without the change.

…failing

A ClearCodec bands layer can refer to a V-bar cache entry that the decoder never stored. Windows servers do this, for example after a cache reset. The decoder returned an error for the whole update, so text-heavy regions from Windows hosts stayed unpainted.

FreeRDP reads such an entry as an empty bar and keeps decoding. Now a full V-bar hit on an empty entry gives a column of zero pixels, and a short V-bar hit on an empty entry gives zero pixel rows, so the column is the band background. The yOn bound check still applies.

Tested with new decoder tests in ironrdp-testsuite-core for both cache hit kinds and the yOn check; the first two fail without the change.
@github-actions github-actions Bot added kind/protocol Affects RDP or related protocol behavior risk/medium Behavioral change that does not substantially alter a core public API scope/core Touches the core architectural tier size/S Size: up to 199 counted lines and 5 files; exceeds XS in either measure labels Nov 14, 2026
@shellden-dev
shellden-dev (shellden-dev) force-pushed the shellden/clearcodec-vbar-cache-miss branch from a7788a1 to dae51b2 Compare November 14, 2026 15:41

This branch was successfully deployed

1 active deployment
llm-providers — dae51b25 Deployed Nov 14, 2026 by shellden-dev via Classify pull request #13852
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/protocol Affects RDP or related protocol behavior risk/medium Behavioral change that does not substantially alter a core public API 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.

1 participant