From 0c60fafebd4c01a4dd1ceb3bc98214655eb5fd1d Mon Sep 17 00:00:00 2001 From: Vic Lee Date: Mon, 22 Aug 2011 17:21:39 +0800 Subject: [PATCH] xfreerdp: fix segfault when closing. --- client/X11/xf_window.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/client/X11/xf_window.c b/client/X11/xf_window.c index 33045f924..4d07b7842 100644 --- a/client/X11/xf_window.c +++ b/client/X11/xf_window.c @@ -357,9 +357,14 @@ void xf_SetWindowIcon(xfInfo* xfi, xfWindow* window, rdpIcon* icon) void xf_DestroyWindow(xfInfo* xfi, xfWindow* window) { - XFreeGC(xfi->display, window->gc); - XFreePixmap(xfi->display, window->surface); - XUnmapWindow(xfi->display, window->handle); - XDestroyWindow(xfi->display, window->handle); + if (window->gc) + XFreeGC(xfi->display, window->gc); + if (window->surface) + XFreePixmap(xfi->display, window->surface); + if (window->handle) + { + XUnmapWindow(xfi->display, window->handle); + XDestroyWindow(xfi->display, window->handle); + } xfree(window); }