xserver: Branch 'master' - 2 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Dec 5 04:27:00 UTC 2023


 dix/devices.c   |    9 +++++++++
 dix/gestures.c  |    6 ++++++
 include/input.h |    1 +
 xkb/xkbInit.c   |    1 +
 4 files changed, 17 insertions(+)

New commits:
commit 073b90ea5655773a9254b69c6eb8d5afb2bf9e51
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Nov 28 16:04:08 2023 +1000

    xkb: free the filters
    
    Direct leak of 960 byte(s) in 6 object(s) allocated from:
        #0 0x7f00a4ed8cc7 in calloc (/lib64/libasan.so.8+0xd8cc7) (BuildId: 6f17f87dc4c1aa9f9dde7c4856604c3a25ba4872)
        #1 0x994944 in _XkbNextFreeFilter ../xkb/xkbActions.c:1142
        #2 0x9971b3 in SrvXkbLatchModifiers ../xkb/xkbActions.c:1452
        #3 0x41dec7 in keyboard_handle_modifiers ../hw/xwayland/xwayland-input.c:1211
        #4 0x7f00a4145055 in ffi_call_unix64 (/lib64/libffi.so.8+0x9055) (BuildId: 308041eea4a8d89d9265d3c24b7261dfbe44a61e)
    
    Acked-by: Olivier Fourdan <ofourdan at redhat.com>

diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index de1dd3fe3..be66d2af9 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -724,6 +724,7 @@ XkbFreeInfo(XkbSrvInfoPtr xkbi)
         XkbFreeKeyboard(xkbi->desc, XkbAllComponentsMask, TRUE);
         xkbi->desc = NULL;
     }
+    free(xkbi->filters);
     free(xkbi);
     return;
 }
commit 45009fb7f5dc9a60d6be0fbedeb20dacdb265c56
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Nov 28 15:59:34 2023 +1000

    dix: clean up the GestureInfoRec on device close
    
    Direct leak of 1080 byte(s) in 3 object(s) allocated from:
        #0 0x7f00a4ed8cc7 in calloc (/lib64/libasan.so.8+0xd8cc7) (BuildId: 6f17f87dc4c1aa9f9dde7c4856604c3a25ba4872)
        #1 0x59f740 in InitGestureClassDeviceStruct ../dix/devices.c:1692
        #2 0x418a0b in xwl_pointer_proc_pointer_gestures ../hw/xwayland/xwayland-input.c:325
        #3 0x598e5c in ActivateDevice ../dix/devices.c:578
        #4 0x420207 in init_pointer_gestures_device ../hw/xwayland/xwayland-input.c:1677
        #5 0x420bf1 in seat_handle_capabilities ../hw/xwayland/xwayland-input.c:1801
        #6 0x7f00a4145055 in ffi_call_unix64 (/lib64/libffi.so.8+0x9055) (BuildId: 308041eea4a8d89d9265d3c24b7261dfbe44a61e)
    
    Acked-by: Olivier Fourdan <ofourdan at redhat.com>

diff --git a/dix/devices.c b/dix/devices.c
index 7150734a5..b063128df 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -827,6 +827,14 @@ FreeDeviceClass(int type, void **class)
         free((*t));
         break;
     }
+    case XIGestureClass:
+    {
+        GestureClassPtr *g = (GestureClassPtr *) class;
+
+        GestureFreeGestureInfo(&(*g)->gesture);
+        free((*g));
+        break;
+    }
     case FocusClass:
     {
         FocusClassPtr *f = (FocusClassPtr *) class;
@@ -941,6 +949,7 @@ FreeAllDeviceClasses(ClassesPtr classes)
     FreeDeviceClass(ButtonClass, (void *) &classes->button);
     FreeDeviceClass(FocusClass, (void *) &classes->focus);
     FreeDeviceClass(ProximityClass, (void *) &classes->proximity);
+    FreeDeviceClass(XIGestureClass, (void*) &classes->gesture);
 
     FreeFeedbackClass(KbdFeedbackClass, (void *) &classes->kbdfeed);
     FreeFeedbackClass(PtrFeedbackClass, (void *) &classes->ptrfeed);
diff --git a/dix/gestures.c b/dix/gestures.c
index 593a4a67f..43672ace5 100644
--- a/dix/gestures.c
+++ b/dix/gestures.c
@@ -58,6 +58,12 @@ GestureInitGestureInfo(GestureInfoPtr gi)
     return TRUE;
 }
 
+void
+GestureFreeGestureInfo(GestureInfoPtr gi)
+{
+    free(gi->sprite.spriteTrace);
+}
+
 /**
  * Given an event type returns the associated gesture event info.
  */
diff --git a/include/input.h b/include/input.h
index f50c9524b..75c7c2df6 100644
--- a/include/input.h
+++ b/include/input.h
@@ -666,6 +666,7 @@ extern void TouchEmitTouchEnd(DeviceIntPtr dev, TouchPointInfoPtr ti, int flags,
 extern void TouchAcceptAndEnd(DeviceIntPtr dev, int touchid);
 
 extern Bool GestureInitGestureInfo(GestureInfoPtr gesture);
+extern void GestureFreeGestureInfo(GestureInfoPtr gesture);
 extern GestureInfoPtr GestureBeginGesture(DeviceIntPtr dev, InternalEvent *ev);
 extern GestureInfoPtr GestureFindActiveByEventType(DeviceIntPtr dev, int type);
 extern void GestureEndGesture(GestureInfoPtr gi);


More information about the xorg-commit mailing list