Skip to content

Commit

Permalink
vnc: fix memleak of the "vnc-worker-output" name
Browse files Browse the repository at this point in the history
Fixes repeated memory leaks of 18 bytes when using VNC:

    Direct leak of 831024 byte(s) in 46168 object(s) allocated from:
        ...
        #4 0x7f6d2f919bdd in g_strdup_vprintf glib/gstrfuncs.c:514
        #5 0x56085cdcf660 in buffer_init util/buffer.c:59
        #6 0x56085ca6a7ec in vnc_async_encoding_start ui/vnc-jobs.c:177
        #7 0x56085ca6b815 in vnc_worker_thread_loop ui/vnc-jobs.c:240

Fixes: 543b958 ("vnc: attach names to buffers")
Cc: Gerd Hoffmann <[email protected]>
CC: [email protected]
Signed-off-by: Peter Wu <[email protected]>
Reviewed-by: Marc-André Lureau <[email protected]>
Message-id: [email protected]
Signed-off-by: Gerd Hoffmann <[email protected]>
  • Loading branch information
Lekensteyn authored and kraxel committed Aug 24, 2018
1 parent 2313e48 commit 0ae0b06
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion ui/vnc-jobs.c
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ static void vnc_async_encoding_start(VncState *orig, VncState *local)

static void vnc_async_encoding_end(VncState *orig, VncState *local)
{
buffer_free(&local->output);
orig->tight = local->tight;
orig->zlib = local->zlib;
orig->hextile = local->hextile;
Expand Down Expand Up @@ -278,7 +279,7 @@ static int vnc_worker_thread_loop(VncJobQueue *queue)
/* Copy persistent encoding data */
vnc_async_encoding_end(job->vs, &vs);

qemu_bh_schedule(job->vs->bh);
qemu_bh_schedule(job->vs->bh);
} else {
buffer_reset(&vs.output);
/* Copy persistent encoding data */
Expand Down

0 comments on commit 0ae0b06

Please sign in to comment.