From d6e58090fed20e30e6966007bc4df0c04324d9e7 Mon Sep 17 00:00:00 2001 From: Ulrich Obergfell Date: Fri, 25 Mar 2011 04:45:54 -0400 Subject: [PATCH] severe memory leak caused by broken palette_destroy() function The following commit breaks the code of the function palette_destroy(). http://git.kernel.org/?p=virt/kvm/qemu-kvm.git;a=commit;h=e31e3694afef58ba191cbcc6875ec243e5971268 The broken code causes a severe memory leak of 'VncPalette' structures because it never frees anything: 70 void palette_destroy(VncPalette *palette) 71 { 72 if (palette == NULL) { 73 qemu_free(palette); 74 } 75 } Version 2 of the patch calls qemu_free() unconditionally. Signed-off-by: Ulrich Obergfell Signed-off-by: Anthony Liguori --- ui/vnc-palette.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ui/vnc-palette.c b/ui/vnc-palette.c index c478060865..13ece42160 100644 --- a/ui/vnc-palette.c +++ b/ui/vnc-palette.c @@ -69,9 +69,7 @@ void palette_init(VncPalette *palette, size_t max, int bpp) void palette_destroy(VncPalette *palette) { - if (palette == NULL) { - qemu_free(palette); - } + qemu_free(palette); } int palette_put(VncPalette *palette, uint32_t color) -- 2.11.4.GIT