--- sourceforge.net/trunk/rdesktop/secure.c 2002/08/04 03:05:19 89 +++ sourceforge.net/trunk/rdesktop/secure.c 2002/09/17 09:55:03 176 @@ -384,7 +384,7 @@ sec_out_mcs_data(STREAM s) { int hostlen = 2 * strlen(hostname); - + if (hostlen > 30) hostlen = 30; @@ -425,12 +425,12 @@ out_uint32_le(s, 12); out_uint8s(s, 64); /* reserved? 4 + 12 doublewords */ - out_uint16(s, 0xca01); + out_uint16_le(s, 0xca01); out_uint16(s, 0); /* Client encryption settings */ out_uint16_le(s, SEC_TAG_CLI_CRYPT); - out_uint16(s, 8); /* length */ + out_uint16_le(s, 8); /* length */ out_uint32_le(s, encryption ? 0x3 : 0); /* encryption supported, 128-bit supported */ s_mark_end(s); } @@ -547,8 +547,12 @@ { uint16 tag, length; uint8 *next_tag; + uint8 len; - in_uint8s(s, 23); /* header */ + in_uint8s(s, 21); /* header */ + in_uint8(s, len); + if (len & 0x80) + in_uint8(s, len); while (s->p < s->end) {