mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-02-02 23:40:35 +01:00
Bug #6903: Fix a crash in the Sync extension. (Soren Sandmann)
This commit is contained in:
parent
62b89b41d1
commit
19f7abbf95
1 changed files with 14 additions and 3 deletions
17
Xext/sync.c
17
Xext/sync.c
|
|
@ -302,22 +302,33 @@ SyncDeleteTriggerFromCounter(pTrigger)
|
|||
SyncTrigger *pTrigger;
|
||||
{
|
||||
SyncTriggerList *pCur;
|
||||
SyncTriggerList *pPrev;
|
||||
|
||||
/* pCounter needs to be stored in pTrigger before calling here. */
|
||||
|
||||
if (!pTrigger->pCounter)
|
||||
return;
|
||||
|
||||
for (pCur = pTrigger->pCounter->pTriglist; pCur; pCur = pCur->next)
|
||||
pPrev = NULL;
|
||||
pCur = pTrigger->pCounter->pTriglist;
|
||||
|
||||
while (pCur)
|
||||
{
|
||||
if (pCur->pTrigger == pTrigger)
|
||||
{
|
||||
pTrigger->pCounter->pTriglist = pCur->next;
|
||||
if (pPrev)
|
||||
pPrev->next = pCur->next;
|
||||
else
|
||||
pTrigger->pCounter->pTriglist = pCur->next;
|
||||
|
||||
xfree(pCur);
|
||||
break;
|
||||
}
|
||||
|
||||
pPrev = pCur;
|
||||
pCur = pCur->next;
|
||||
}
|
||||
|
||||
|
||||
if (IsSystemCounter(pTrigger->pCounter))
|
||||
SyncComputeBracketValues(pTrigger->pCounter, /*startOver*/ TRUE);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue