[PATCH 0/2] ui/vnc: Do not copy z_stream

Akihiko Odaki posted 2 patches 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20250417-zlib-v1-0-34fad73b843b@daynix.com
Maintainers: "Marc-André Lureau" <marcandre.lureau@redhat.com>
There is a newer version of this series
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(-)
[PATCH 0/2] ui/vnc: Do not copy z_stream
Posted by Akihiko Odaki 7 months ago
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>
Re: [PATCH 0/2] ui/vnc: Do not copy z_stream
Posted by Philippe Mathieu-Daudé 7 months ago
On 17/4/25 11:41, Akihiko Odaki wrote:
> 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

Series:
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>