Xext/xselinux: add fast path to ProcSELinuxListSelections()

If there's nothing to send, skip over a bunch of code to make a list
that won't be used, and hopefully make the code path clearer to both
humans and static analyzers, who raise errors as seen in #1817 of
dereferencing NULL pointers when count == 0.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
(cherry picked from commit d34243606c)

Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2077>
This commit is contained in:
Alan Coopersmith 2025-10-04 17:19:05 -07:00 committed by Olivier Fourdan
parent a39d4c3a30
commit b51c6a8e3d

View file

@ -452,8 +452,10 @@ ProcSELinuxListSelections(ClientPtr client)
count = 0;
for (pSel = CurrentSelections; pSel; pSel = pSel->next)
count++;
if (count == 0)
return SELinuxSendItemsToClient(client, NULL, 0, 0);
items = calloc(count, sizeof(SELinuxListItemRec));
if (count && !items)
if (!items)
return BadAlloc;
/* Fill in the items and calculate size */