(!1967) dix: protect ChangeWindowDeviceCursor() from allocation failure

On memory allocation failure, return BadAlloc instead of crashing.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
Enrico Weigelt, metux IT consult 2025-05-06 16:04:41 +02:00
parent fdefa80256
commit 1014867436

View File

@ -3486,17 +3486,17 @@ ChangeWindowDeviceCursor(WindowPtr pWin, DeviceIntPtr pDev, CursorPtr pCursor)
}
else {
/* no device cursor yet */
DevCursNodePtr pNewNode;
if (!pCursor)
return Success;
pNewNode = malloc(sizeof(DevCursNodeRec));
DevCursNodePtr pNewNode = calloc(1, sizeof(DevCursNodeRec));
if (!pNewNode)
return BadAlloc;
pNewNode->dev = pDev;
pNewNode->next = pWin->optional->deviceCursors;
pWin->optional->deviceCursors = pNewNode;
pNode = pNewNode;
}
if (pCursor && WindowParentHasDeviceCursor(pWin, pDev, pCursor))