Files
FreeRDP/libfreerdp/core
Steve Pronovost 49d9e61884 Fix protocol violation when uploading large ICON
When uploading large ICON (96x96), we end up growing the stream
mid-update. Stream_EnsureCapacity end up reallocating the stream
with a larger capacity to accomodate the large ICON size, but in
doing so, also updating the sealed length for the data currently in
the stream. This breaks the assumption between update_begin_paint
and update_end_paint where the sealed lenght is used to keep track
of the location where we need to update the orders counts after
we're done accumulating update. As a result of the growth and lost
of that location, the number of orders is written to the wrong
location and the resulting stream is invalid which result in a
protocol violation and a connection drop.

The current fix uses a new offsetOrder in the update object to
keep track of where update_end_paint needs to write the number
of orders contained. I think a better fix would be for
Stream_EnsureCapacity to preserve the sealead length of the
stream on growth, but this has a much more significant impact and
careful analysis needs to be done to ensure this doesn't violate
other assumption. Need to follow up with FreeRDP developer to get
their take on this one.
2021-10-21 13:11:21 +02:00
..
2021-10-15 11:45:08 +02:00
2021-10-14 13:04:59 +02:00
2021-09-09 08:36:01 +02:00
2019-11-07 10:53:54 +01:00
2021-09-20 10:59:59 +02:00
2020-03-10 14:05:10 +01:00
2021-08-26 16:17:51 +02:00
2021-08-26 16:17:51 +02:00
2021-08-24 14:09:40 +02:00
2021-09-23 14:52:03 +02:00
2021-09-20 10:59:59 +02:00
2021-09-22 14:27:21 +02:00
2019-12-02 10:57:31 +01:00
2019-11-07 10:53:54 +01:00
2019-11-07 10:53:54 +01:00
2019-11-07 10:53:54 +01:00
2020-09-16 10:21:15 +02:00
2021-09-06 10:11:14 +02:00
2021-09-23 14:52:03 +02:00
2021-02-17 11:29:56 +01:00
2021-08-27 13:21:02 +02:00
2019-12-02 10:57:31 +01:00
2019-11-07 10:53:54 +01:00
2019-11-07 10:53:54 +01:00
2021-09-22 14:27:21 +02:00
2021-09-09 08:36:01 +02:00
2021-06-14 09:37:07 +02:00
2019-12-19 09:53:40 +01:00
2019-11-07 10:53:54 +01:00
2019-11-07 10:53:54 +01:00
2021-02-17 11:29:56 +01:00
2021-09-10 08:16:25 +02:00
2021-06-09 11:03:37 +02:00
2021-09-23 14:52:03 +02:00
2019-11-07 10:53:54 +01:00
2019-12-02 10:57:31 +01:00
2021-10-18 16:09:13 +02:00
2021-09-09 08:53:20 +02:00
2019-11-07 10:53:54 +01:00
2019-11-07 10:53:54 +01:00
2021-08-24 11:10:51 +02:00
2019-11-07 10:53:54 +01:00
2021-09-09 08:53:20 +02:00
2021-10-18 14:48:27 +02:00
2021-03-01 11:03:52 +01:00
2021-09-23 14:52:03 +02:00
2021-10-12 12:26:22 +02:00
2021-09-09 08:36:01 +02:00
2021-09-09 08:36:01 +02:00
2019-11-07 10:53:54 +01:00
2019-11-07 10:53:54 +01:00
2020-07-20 13:18:45 +02:00
2021-09-20 10:59:59 +02:00
2021-09-10 08:16:25 +02:00
2021-10-18 16:09:13 +02:00
2019-11-07 10:53:54 +01:00