diff --git a/dix/window.c b/dix/window.c index 2fc9ac03e..de6d617ce 100644 --- a/dix/window.c +++ b/dix/window.c @@ -3487,17 +3487,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))