From 830b37f863b5e7b016dbb1ee1e2fa1b4f2b11502 Mon Sep 17 00:00:00 2001 From: "Enrico Weigelt, metux IT consult" Date: Tue, 6 May 2025 13:55:54 +0200 Subject: [PATCH] =?UTF-8?q?(!1967)=20dix:=20protect=20against=20alloc=20fa?= =?UTF-8?q?ilure=20in=20=E2=80=98DeviceFocusEvent()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes analyzer warning: | ../dix/enterleave.c: In function ‘DeviceFocusEvent’: | ../dix/enterleave.c:788:20: warning: dereference of possibly-NULL ‘xi2event’ [CWE-690] [-Wanalyzer-possible-null-dereference] | 788 | xi2event->type = GenericEvent; | ‘DoFocusEvents’: events 1-4 Signed-off-by: Enrico Weigelt, metux IT consult --- dix/enterleave.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/dix/enterleave.c b/dix/enterleave.c index b814b6493..83f4621ad 100644 --- a/dix/enterleave.c +++ b/dix/enterleave.c @@ -771,7 +771,6 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, WindowPtr pWin) { deviceFocus event; - xXIFocusInEvent *xi2event; int btlen, len, i; DeviceIntPtr mouse = InputDevIsFloating(dev) ? @@ -783,7 +782,10 @@ DeviceFocusEvent(DeviceIntPtr dev, int type, int mode, int detail, btlen = bytes_to_int32(btlen); len = sizeof(xXIFocusInEvent) + btlen * 4; - xi2event = calloc(1, len); + xXIFocusInEvent *xi2event = calloc(1, len); + if (!xi2event) + return; + xi2event->type = GenericEvent; xi2event->extension = IReqCode; xi2event->evtype = type;