From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55424) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeM0V-0005rk-2y for qemu-devel@nongnu.org; Wed, 15 Oct 2014 06:40:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XeM0Q-0000lT-9I for qemu-devel@nongnu.org; Wed, 15 Oct 2014 06:40:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:31140) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeM0Q-0000l4-0v for qemu-devel@nongnu.org; Wed, 15 Oct 2014 06:40:34 -0400 From: Gerd Hoffmann Date: Wed, 15 Oct 2014 12:40:14 +0200 Message-Id: <1413369615-18600-2-git-send-email-kraxel@redhat.com> In-Reply-To: <1413369615-18600-1-git-send-email-kraxel@redhat.com> References: <1413369615-18600-1-git-send-email-kraxel@redhat.com> Subject: [Qemu-devel] [PULL 1/2] gtk.c: Fix memory leak in gd_set_keycode_type() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Chen Fan , Gerd Hoffmann , Anthony Liguori From: Chen Fan this memory leak is introduced by the original commit 3158a3482b0093e41f2b2596fba50774ea31ae08 valgrind out showing: ==14553== 21,459 (72 direct, 21,387 indirect) bytes in 1 blocks are definitely lost in loss record 8,055 of 8,082 ==14553== at 0x4A06BC3: calloc (vg_replace_malloc.c:618) ==14553== by 0x80DBFBC: XkbGetKeyboardByName (in /usr/lib64/libX11.so.6.3.0) ==14553== by 0x40C704: gtk_display_init (gtk.c:1798) ==14553== by 0x1AEDC1: main (vl.c:4480) Signed-off-by: Chen Fan Signed-off-by: Gerd Hoffmann --- ui/gtk.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ui/gtk.c b/ui/gtk.c index 2345d7e..cdd2567 100644 --- a/ui/gtk.c +++ b/ui/gtk.c @@ -1810,6 +1810,13 @@ static void gd_set_keycode_type(GtkDisplayState *s) fprintf(stderr, "unknown keycodes `%s', please report to " "qemu-devel@nongnu.org\n", keycodes); } + + if (desc) { + XkbFreeKeyboard(desc, XkbGBN_AllComponentsMask, True); + } + if (keycodes) { + XFree(keycodes); + } } #endif } -- 1.8.3.1