vnc_worker_thread_loop() copies z_stream stored in its local VncState to
the persistent VncState, and the copied one is freed with deflateEnd()
later. However, deflateEnd() refuses to operate with a copied z_stream
and returns Z_STREAM_ERROR, leaking the allocated memory.
Avoid copying the zlib state to fix the memory leak.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
Akihiko Odaki (2):
ui/vnc: Introduce the VncWorker type
ui/vnc: Do not copy z_stream
ui/vnc.h | 14 ++-
ui/vnc-enc-tight.c | 341 ++++++++++++++++++++++++++------------------------
ui/vnc-enc-zlib.c | 34 ++---
ui/vnc-enc-zrle.c | 69 +++++-----
ui/vnc-jobs.c | 9 +-
ui/vnc.c | 56 ++++-----
ui/vnc-enc-zrle.c.inc | 2 +-
7 files changed, 258 insertions(+), 267 deletions(-)
---
base-commit: 825b96dbcee23d134b691fc75618b59c5f53da32
change-id: 20250417-zlib-ce3034f8bc3c
Best regards,
--
Akihiko Odaki <akihiko.odaki@daynix.com>