The extension record is currently leaked and never freed.

Signed-off-by: Chase Douglas <chase.doug...@canonical.com>
---
 src/XExtInt.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/src/XExtInt.c b/src/XExtInt.c
index 43738a2..27638bd 100644
--- a/src/XExtInt.c
+++ b/src/XExtInt.c
@@ -434,7 +434,16 @@ XInputClose(
        XFree((char *)((XInputData *) info->data)->vers);
        XFree((char *)info->data);
     }
-    return XextRemoveDisplay(xinput_info, dpy);
+
+    if (!XextRemoveDisplay(xinput_info, dpy))
+        return 0;
+
+    if (xinput_info->ndisplays == 0) {
+        XextDestroyExtension(xinput_info);
+        xinput_info = NULL;
+    }
+
+    return 1;
 }
 
 static int
-- 
1.7.9.1

_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to