mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-04-18 08:30:37 +02:00
os: Fix NULL pointer dereference
RemoveHost() can be called from DisableLocalHost() with a NULL client,
but doesn't actually check whether the given client pointer is valid on
error and assigns the error value unconditionally, leading to a possible
NULL pointer dereference and a crash of the Xserver.
To avoid the issue, simply check whether the client pointer is not NULL
prior to assign the errorValue.
Closes: https://gitlab.freedesktop.org/xorg/xserver/-/issues/1752
See-also: https://bugzilla.redhat.com/2313799
Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
(cherry picked from commit 57a446c0f9)
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1702>
This commit is contained in:
parent
02546fa66a
commit
8d9b8249a7
1 changed files with 4 additions and 2 deletions
|
|
@ -1438,13 +1438,15 @@ RemoveHost(ClientPtr client, int family, unsigned length, /* of bytes in p
|
|||
case FamilyChaos:
|
||||
case FamilyServerInterpreted:
|
||||
if ((len = CheckAddr(family, pAddr, length)) < 0) {
|
||||
client->errorValue = length;
|
||||
if (client)
|
||||
client->errorValue = length;
|
||||
return BadValue;
|
||||
}
|
||||
break;
|
||||
case FamilyLocal:
|
||||
default:
|
||||
client->errorValue = family;
|
||||
if (client)
|
||||
client->errorValue = family;
|
||||
return BadValue;
|
||||
}
|
||||
for (prev = &validhosts;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue