xserver/os
Mikhail Dmitrichenko dd2255c309 os: avoid closing null fd at Fopen
In `Fopen` function variable `iop` may store NULL as a result of `fopen`
call. In this case, if later privileges couldn't be restored (`seteuid`
call fails), further `fclose(iop)` call will cause runtime error.

This commit adds check `iop` for NULL before calling `fclose` to prevent
potential NULL pointer dereference.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Mikhail Dmitrichenko <m.dmitrichenko222@gmail.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/2115>
(cherry picked from commit f83807647e)
2026-01-25 10:40:03 -08:00
..
.gitignore dix and os: gitignore dix.O and os.O 2011-09-23 17:14:47 -07:00
access.c os: if getaddrinfo() is available, use it, even if IPv6 support is disabled 2026-01-25 10:39:58 -08:00
auth.c os: drop SUN-DES-1 authentication 2026-01-25 10:39:53 -08:00
backtrace.c os: backtrace: Fix -Wincompatible-pointer-types compiler error on 32-bit targets 2026-01-25 10:40:00 -08:00
busfault.c include: move busfault.h out of public include dir 2026-01-19 12:32:26 -08:00
busfault.h os: fix missing include of misc.h in busfault.h 2026-01-19 12:48:30 -08:00
client.c Return NULL in *cmdname if the client argv or argv[0] is NULL 2026-01-25 10:39:56 -08:00
connection.c os: use close-on-exec for X server socket to prevent fd leaks 2026-01-25 10:40:02 -08:00
inputthread.c os, shm: fcntl()'s third argument is integer, not pointer 2020-12-18 09:36:30 -05:00
io.c os: Check for integer overflow on BigRequest length 2026-01-25 10:40:02 -08:00
log.c os: avoid potential out-of-bounds access at logVHdrMessageVerb 2026-01-25 10:40:02 -08:00
meson.build os: drop SUN-DES-1 authentication 2026-01-25 10:39:53 -08:00
mitauth.c os: Use memcpy() instead of memmove() when buffers are known not to overlap 2022-08-29 21:10:51 +00:00
oscolor.c os: unexport OsLookupColor() 2026-01-19 12:47:57 -08:00
osdep.h Re-export Ones() 2026-01-25 10:40:02 -08:00
osinit.c os/osinit: fix build when execinfo.h is missing 2026-01-25 10:40:00 -08:00
ospoll.c os: move xserver_poll.h into os/ directory 2026-01-25 10:39:54 -08:00
ospoll.h os: Add ospoll interface [v2] 2016-07-21 15:04:47 -04:00
reallocarray.c Import reallocarray() from OpenBSD 2015-04-21 16:57:08 -07:00
strcasecmp.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strcasestr.c os: fix mising prototype / include on WIN32 builds 2026-01-19 12:32:19 -08:00
strlcat.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strlcpy.c Introduce a consistent coding style 2012-03-21 13:54:42 -07:00
strndup.c os: Ensure <dix-config.h> is included in strndup.c 2013-02-14 09:20:46 -08:00
timingsafe_memcmp.c timingsafe_memcmp: Fix meson build 2017-05-10 10:56:16 -04:00
utils.c os: avoid closing null fd at Fopen 2026-01-25 10:40:03 -08:00
WaitFor.c os: NextDPMSTimeout: mark intentional fallthroughs in switch 2026-01-25 10:39:57 -08:00
xdmauth.c os: Use memcpy() instead of memmove() when buffers are known not to overlap 2022-08-29 21:10:51 +00:00
xdmcp.c os: if getaddrinfo() is available, use it, even if IPv6 support is disabled 2026-01-25 10:39:58 -08:00
xprintf.c Remove "All rights reserved" from Oracle copyright notices 2023-02-25 09:40:41 -08:00
xserver_poll.c os: move xserver_poll.h into os/ directory 2026-01-25 10:39:54 -08:00
xserver_poll.h os: move xserver_poll.h into os/ directory 2026-01-25 10:39:54 -08:00
xsha1.c os: Use EVP APIs when building with OpenSSL 3 2026-01-25 10:40:02 -08:00
xsha1.h include: move xsha1.h to os/ 2026-01-19 12:32:20 -08:00
xstrans.c Clean up a couple of warnings in os/ 2013-10-31 16:58:12 -07:00