libfreerdp-core: parse all updates in the update array

This commit is contained in:
Marc-André Moreau 2011-08-07 09:27:52 -04:00
parent ff20b0fcbc
commit efbbedfa70

View File

@ -189,6 +189,25 @@ void update_recv(rdpUpdate* update, STREAM* s)
} }
IFCALL(update->EndPaint, update); IFCALL(update->EndPaint, update);
if (stream_get_left(s) > RDP_SHARE_DATA_HEADER_LENGTH)
{
uint8 type;
uint16 pduType;
uint16 length;
uint16 source;
uint32 shareId;
rdp_read_share_control_header(s, &length, &pduType, &source);
if (pduType != PDU_TYPE_DATA)
return;
rdp_read_share_data_header(s, &length, &type, &shareId);
if (type == DATA_PDU_TYPE_UPDATE)
update_recv(update, s);
}
} }
rdpUpdate* update_new(rdpRdp* rdp) rdpUpdate* update_new(rdpRdp* rdp)