On Mon, Aug 31, 2020 at 1:59 PM JonVol <jon...@gmail.com> wrote: > ... > Using valgrind we have tracked the problem to guac_rdpdr_fs_process_read > (rdpdr-fs-messages.c). Seems that the wStream object created via the call > to > guac_rdpdr_new_io_completion and is subsequently passed over to freerdp in > guac_rdp_common_svc_write (common-svc.c) never gets freed by freerdp. >
What version of FreeRDP are you building against? >From the body of the function in question [1]: /* NOTE: Data sent via pVirtualChannelWriteEx MUST always be dynamically * allocated, as it will be automatically freed using free(). If provided, * the last parameter (user data) MUST be a pointer to a wStream, as it * will automatically be freed by FreeRDP using Stream_Free() */ 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 [1] https://github.com/apache/guacamole-server/blob/382d72a26a04008aa936680deed00e3a31086b1e/src/protocols/rdp/channels/common-svc.c#L92-L98 [2] https://github.com/apache/guacamole-server/blob/382d72a26a04008aa936680deed00e3a31086b1e/configure.ac#L626-L648