mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2025-12-20 04:40:02 +01:00
Xext/sync: avoid null dereference if SysCounterGetPrivate() returns NULL
Reported in #1817: xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2664:9: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’ # 2662| SyncCounter *counter = pCounter; # 2663| IdleCounterPriv *priv = SysCounterGetPrivate(counter); # 2664|-> deviceid = priv->deviceid; # 2665| } # 2666| else xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2677:14: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’ # 2675| SyncCounter *counter = pCounter; # 2676| IdleCounterPriv *priv = SysCounterGetPrivate(counter); # 2677|-> int64_t *less = priv->value_less; # 2678| int64_t *greater = priv->value_greater; # 2679| int64_t idle, old_idle; xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2767:14: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’ # 2765| SyncCounter *counter = pCounter; # 2766| IdleCounterPriv *priv = SysCounterGetPrivate(counter); # 2767|-> int64_t *less = priv->value_less; # 2768| int64_t *greater = priv->value_greater; # 2769| int64_t idle; xwayland-24.1.6/redhat-linux-build/../Xext/sync.c:2800:14: danger: dereference of NULL ‘SysCounterGetPrivate(pCounter)’ # 2798| SyncCounter *counter = pCounter; # 2799| IdleCounterPriv *priv = SysCounterGetPrivate(counter); # 2800|-> int64_t *less = priv->value_less; # 2801| int64_t *greater = priv->value_greater; # 2802| Bool registered = (less || greater); Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2072>
This commit is contained in:
parent
87e53afd9c
commit
0211de37b3
1 changed files with 5 additions and 0 deletions
|
|
@ -2620,9 +2620,11 @@ IdleTimeQueryValue(void *pCounter, int64_t *pValue_return)
|
||||||
int deviceid;
|
int deviceid;
|
||||||
CARD32 idle;
|
CARD32 idle;
|
||||||
|
|
||||||
|
*pValue_return = 0;
|
||||||
if (pCounter) {
|
if (pCounter) {
|
||||||
SyncCounter *counter = pCounter;
|
SyncCounter *counter = pCounter;
|
||||||
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
BUG_RETURN(priv == NULL);
|
||||||
deviceid = priv->deviceid;
|
deviceid = priv->deviceid;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
@ -2636,6 +2638,7 @@ IdleTimeBlockHandler(void *pCounter, void *wt)
|
||||||
{
|
{
|
||||||
SyncCounter *counter = pCounter;
|
SyncCounter *counter = pCounter;
|
||||||
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
BUG_RETURN(priv == NULL);
|
||||||
int64_t *less = priv->value_less;
|
int64_t *less = priv->value_less;
|
||||||
int64_t *greater = priv->value_greater;
|
int64_t *greater = priv->value_greater;
|
||||||
int64_t idle, old_idle;
|
int64_t idle, old_idle;
|
||||||
|
|
@ -2726,6 +2729,7 @@ IdleTimeWakeupHandler(void *pCounter, int rc)
|
||||||
{
|
{
|
||||||
SyncCounter *counter = pCounter;
|
SyncCounter *counter = pCounter;
|
||||||
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
BUG_RETURN(priv == NULL);
|
||||||
int64_t *less = priv->value_less;
|
int64_t *less = priv->value_less;
|
||||||
int64_t *greater = priv->value_greater;
|
int64_t *greater = priv->value_greater;
|
||||||
int64_t idle;
|
int64_t idle;
|
||||||
|
|
@ -2759,6 +2763,7 @@ IdleTimeBracketValues(void *pCounter, int64_t *pbracket_less,
|
||||||
{
|
{
|
||||||
SyncCounter *counter = pCounter;
|
SyncCounter *counter = pCounter;
|
||||||
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
IdleCounterPriv *priv = SysCounterGetPrivate(counter);
|
||||||
|
BUG_RETURN(priv == NULL);
|
||||||
int64_t *less = priv->value_less;
|
int64_t *less = priv->value_less;
|
||||||
int64_t *greater = priv->value_greater;
|
int64_t *greater = priv->value_greater;
|
||||||
Bool registered = (less || greater);
|
Bool registered = (less || greater);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue