Don't pass drdynvc to neutrinoRDP

Since v0.9.9, xrdp has assumed that the "drdynvc" static virtual
channel is available for its exclusive use. With GFX support, it
is necessary to codify this to prevent this sequence of operations:-

- NeutrinoRDP target sends DVC Capabilities Request PDU
- target responds wih DVC Capabilities Response PDU
- xrdp processes this, starting the GFX virtual channel again

In the future, if NeutrinoRDP requires access to virtual channels,
data may somehow need to be passed through to the target while being
parsed and handled appropriately within xrdp.
This commit is contained in:
matt335672
2024-01-25 15:22:45 +00:00
committed by Christopher Pitstick
parent d23d147dc7
commit d9783a9529
3 changed files with 32 additions and 15 deletions
+2 -2
View File
@@ -2388,10 +2388,10 @@ xrdp_sec_process_mcs_data_channels(struct xrdp_sec *self, struct stream *s)
in_uint32_le(s, num_channels);
LOG_DEVEL(LOG_LEVEL_TRACE, "Received [MS-RDPBCGR] TS_UD_CS_NET "
"channelCount %d", num_channels);
if (num_channels > 31)
if (num_channels > MAX_STATIC_CHANNELS)
{
LOG(LOG_LEVEL_ERROR, "[MS-RDPBCGR] Protocol error: too many channels requested. "
"max 31, received %d", num_channels);
"max %d, received %d", MAX_STATIC_CHANNELS, num_channels);
return 1;
}