core: use zero padding in suppress output pdu

Some legacy rdp servers seem to expect a zero padding after the
allowDisplayUpdates byte, probably because they incorrectly parse the
value as uint32.
This commit is contained in:
Norbert Federa 2014-11-14 11:25:05 +01:00
parent 7acc61e3f6
commit be7a10e660

View File

@ -829,7 +829,8 @@ static void update_send_refresh_rect(rdpContext* context, BYTE count, RECTANGLE_
static void update_write_suppress_output(wStream* s, BYTE allow, RECTANGLE_16* area) static void update_write_suppress_output(wStream* s, BYTE allow, RECTANGLE_16* area)
{ {
Stream_Write_UINT8(s, allow); /* allowDisplayUpdates (1 byte) */ Stream_Write_UINT8(s, allow); /* allowDisplayUpdates (1 byte) */
Stream_Seek(s, 3); /* pad3Octets (3 bytes) */ /* Use zeros for padding (like mstsc) for compatibility with legacy servers */
Stream_Zero(s, 3); /* pad3Octets (3 bytes) */
if (allow > 0) if (allow > 0)
{ {