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