animcur: Handle allocation failure for the animation timer
Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Aaron Plattner <aplattner@nvidia.com> Tested-by: Aaron Plattner <aplattner@nvidia.com>
This commit is contained in:
parent
de60245e05
commit
4d82a150b2
|
@ -299,7 +299,7 @@ AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
|
||||||
CursorPtr *ppCursor, ClientPtr client, XID cid)
|
CursorPtr *ppCursor, ClientPtr client, XID cid)
|
||||||
{
|
{
|
||||||
CursorPtr pCursor;
|
CursorPtr pCursor;
|
||||||
int rc, i;
|
int rc = BadAlloc, i;
|
||||||
AnimCurPtr ac;
|
AnimCurPtr ac;
|
||||||
|
|
||||||
for (i = 0; i < screenInfo.numScreens; i++)
|
for (i = 0; i < screenInfo.numScreens; i++)
|
||||||
|
@ -314,7 +314,7 @@ AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
|
||||||
sizeof(AnimCurRec) +
|
sizeof(AnimCurRec) +
|
||||||
ncursor * sizeof(AnimCurElt), 1);
|
ncursor * sizeof(AnimCurElt), 1);
|
||||||
if (!pCursor)
|
if (!pCursor)
|
||||||
return BadAlloc;
|
return rc;
|
||||||
dixInitPrivates(pCursor, pCursor + 1, PRIVATE_CURSOR);
|
dixInitPrivates(pCursor, pCursor + 1, PRIVATE_CURSOR);
|
||||||
pCursor->bits = &animCursorBits;
|
pCursor->bits = &animCursorBits;
|
||||||
pCursor->refcnt = 1;
|
pCursor->refcnt = 1;
|
||||||
|
@ -333,8 +333,10 @@ AnimCursorCreate(CursorPtr *cursors, CARD32 *deltas, int ncursor,
|
||||||
ac->timer = TimerSet(NULL, 0, 0, AnimCurTimerNotify, NULL);
|
ac->timer = TimerSet(NULL, 0, 0, AnimCurTimerNotify, NULL);
|
||||||
|
|
||||||
/* security creation/labeling check */
|
/* security creation/labeling check */
|
||||||
rc = XaceHook(XACE_RESOURCE_ACCESS, client, cid, RT_CURSOR, pCursor,
|
if (ac->timer)
|
||||||
RT_NONE, NULL, DixCreateAccess);
|
rc = XaceHook(XACE_RESOURCE_ACCESS, client, cid, RT_CURSOR, pCursor,
|
||||||
|
RT_NONE, NULL, DixCreateAccess);
|
||||||
|
|
||||||
if (rc != Success) {
|
if (rc != Success) {
|
||||||
TimerFree(ac->timer);
|
TimerFree(ac->timer);
|
||||||
dixFiniPrivates(pCursor, PRIVATE_CURSOR);
|
dixFiniPrivates(pCursor, PRIVATE_CURSOR);
|
||||||
|
|
Loading…
Reference in New Issue