diff --git a/dix/window.c b/dix/window.c index 3b34f8486..6e7b3e125 100644 --- a/dix/window.c +++ b/dix/window.c @@ -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))