From 25762834c9a5da3a7c672d89a7da73297252d905 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Sun, 8 Sep 2024 09:17:17 -0700 Subject: [PATCH] dix: check for calloc() failure in Xi event conversion routines Clears up 12 -Wanalyzer-possible-null-dereference warnings from gcc 14.1 Signed-off-by: Alan Coopersmith Part-of: --- dix/eventconvert.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/dix/eventconvert.c b/dix/eventconvert.c index a7f43efe6..6abd86836 100644 --- a/dix/eventconvert.c +++ b/dix/eventconvert.c @@ -685,6 +685,8 @@ eventToDeviceEvent(DeviceEvent *ev, xEvent **xi) len += vallen * 4; /* valuators mask */ *xi = calloc(1, len); + if (*xi == NULL) + return BadAlloc; xde = (xXIDeviceEvent *) * xi; xde->type = GenericEvent; xde->extension = IReqCode; @@ -753,6 +755,8 @@ eventToTouchOwnershipEvent(TouchOwnershipEvent *ev, xEvent **xi) xXITouchOwnershipEvent *xtoe; *xi = calloc(1, len); + if (*xi == NULL) + return BadAlloc; xtoe = (xXITouchOwnershipEvent *) * xi; xtoe->type = GenericEvent; xtoe->extension = IReqCode; @@ -783,6 +787,8 @@ eventToRawEvent(RawDeviceEvent *ev, xEvent **xi) len += vallen * 4; /* valuators mask */ *xi = calloc(1, len); + if (*xi == NULL) + return BadAlloc; raw = (xXIRawEvent *) * xi; raw->type = GenericEvent; raw->extension = IReqCode; @@ -818,6 +824,8 @@ eventToBarrierEvent(BarrierEvent *ev, xEvent **xi) int len = sizeof(xXIBarrierEvent); *xi = calloc(1, len); + if (*xi == NULL) + return BadAlloc; barrier = (xXIBarrierEvent*) *xi; barrier->type = GenericEvent; barrier->extension = IReqCode; @@ -847,6 +855,8 @@ eventToGesturePinchEvent(GestureEvent *ev, xEvent **xi) xXIGesturePinchEvent *xpe; *xi = calloc(1, len); + if (*xi == NULL) + return BadAlloc; xpe = (xXIGesturePinchEvent *) * xi; xpe->type = GenericEvent; xpe->extension = IReqCode; @@ -889,6 +899,8 @@ eventToGestureSwipeEvent(GestureEvent *ev, xEvent **xi) xXIGestureSwipeEvent *xde; *xi = calloc(1, len); + if (*xi == NULL) + return BadAlloc; xde = (xXIGestureSwipeEvent *) * xi; xde->type = GenericEvent; xde->extension = IReqCode;