summaryrefslogtreecommitdiff
blob: c419462299c0887ccc0ff10d0d9fae67033f39e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
From f435c05c64bc20557d901170b76f6bce8506ed48 Mon Sep 17 00:00:00 2001
From: Matt Turner <mattst88@gmail.com>
Date: Thu, 1 Mar 2012 16:48:23 -0500
Subject: [PATCH libXaw3d] Fix use-after-free in DestroyAllIM

Fixes segmentation fault when closing gv.

Found at http://gitorious.org/xaw3d/xaw3d/commit/23b3ca50395f180cba4a923eb8827dcc961629da

Fixes: https://bugs.gentoo.org/show_bug.cgi?id=406487
Signed-off-by: Matt Turner <mattst88@gmail.com>
---
Original author of this patch is unknown. If you know, let me know and
I'll fix the attribution.

 src/XawIm.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/XawIm.c b/src/XawIm.c
index 82a94b1..00562b5 100644
--- a/src/XawIm.c
+++ b/src/XawIm.c
@@ -320,12 +320,12 @@ DestroyAllIM(XawVendorShellExtPart *ve)
     /*
      * Close Input Method
      */
-    CloseIM(ve);
     if (!XFindContext(XDisplayOfIM(ve->im.xim), (Window)ve->im.xim, errContext,
 		      (XPointer*)&contextErrData)) {
 	if (contextErrData) XtFree((char *)contextErrData);
     }
     XDeleteContext(XDisplayOfIM(ve->im.xim), (Window)ve->im.xim, errContext);
+    CloseIM(ve);
     ve->im.xim = NULL;
 
     /*
-- 
1.7.3.4