mjumper wrote
> It's possible that the internal behavior of pVirtualChannelWriteEx() has
> changed and the wStream is no longer automatically freed. This would be
> unfortunate, but not unprecedented. We already need a version check within
> our configure.ac to test just how much will truly be freed by
> Bitmap_Free()
> [2]. It may be that another change requires the same sort of check
> for pVirtualChannelWriteEx().
>
> - Mike
Hi Mike,
We found out that "drdynvc_virtual_channel_open_event_ex" is not being
called on this flow (and we believe this is why the relevant wStreams are
not being released).
Instead - the guac registered the function:
"guac_rdp_common_svc_handle_open_event".
This function is an event handler supposed to handle the events:
"CHANNEL_EVENT_DATA_RECEIVED", "CHANNEL_EVENT_WRITE_CANCELED" and
"CHANNEL_EVENT_WRITE_COMPLETE", however only the first one is currently
handled by it ("CHANNEL_EVENT_DATA_RECEIVED").
We believe this is the cause for the leak Jonatan mentioned above.
Once adding a code section in this function that calls "Stream_Free" on the
relevant stream when "CHANNEL_EVENT_WRITE_COMPLETE" occurs, we avoided this
leak and the memory seems to be freed.
We found no issues with this behavior, and we couldn't reproduce any flow
where this fix may be problematic.
Do you know of any reason to avoid handling the
"CHANNEL_EVENT_WRITE_COMPLETE", and release the stream once it received?
Thanks,
Alon
--
Sent from:
http://apache-guacamole-general-user-mailing-list.2363388.n4.nabble.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]