From 991ae017db3e5ad8bc3388d3d82c1dea689f6877 Mon Sep 17 00:00:00 2001 From: "Alfred E. Heggestad" Date: Sat, 17 Oct 2015 21:18:26 +0200 Subject: gtk: fix use-after-free (patch from Charles Lehner) --- modules/gtk/call_window.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'modules/gtk') diff --git a/modules/gtk/call_window.c b/modules/gtk/call_window.c index 4e3797d..c520e51 100644 --- a/modules/gtk/call_window.c +++ b/modules/gtk/call_window.c @@ -251,8 +251,10 @@ static void mqueue_handler(int id, void *data, void *arg) break; case MQ_CLOSE: - ua_hangup(uag_current(), win->call, 0, NULL); - win->closed = true; + if (!win->closed) { + ua_hangup(uag_current(), win->call, 0, NULL); + win->closed = true; + } mem_deref(win); break; @@ -458,6 +460,7 @@ void call_window_closed(struct call_window *win, const char *reason) } call_window_set_status(win, status); win->transfer_dialog = mem_deref(win->transfer_dialog); + win->closed = true; } void call_window_ringing(struct call_window *win) -- cgit v1.2.3