mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 15:06:14 +01:00
gio-unix: Use EPOLL_CLOEXEC by default
First, there's no reason not to use the new `epoll_create1` system call, which quickly obsoleted `epoll_create` which has an obsolete and unused size argument. But more specifically, it offers `EPOLL_CLOEXEC` which we want to use for general hygeine - there's no reason to potentially leak this file descriptor to forked processes. (GLib itself carefully closes file descriptors when forking child processes, but it may be linked with other software that doesn't; notably in my case for example the Rust standard library does not do this and hence relies more on the application code using `O_CLOEXEC` and variants) This is just a drive-by fix; I saw the system call when I was using `strace` to debug something else in rpm-ostree.
This commit is contained in:
parent
c135882e7e
commit
426fab1eca
@ -82,9 +82,9 @@ _g_fd_is_pollable (int fd)
|
|||||||
struct epoll_event ev = { 0, };
|
struct epoll_event ev = { 0, };
|
||||||
gboolean add_succeeded;
|
gboolean add_succeeded;
|
||||||
|
|
||||||
efd = epoll_create (1);
|
efd = epoll_create1 (EPOLL_CLOEXEC);
|
||||||
if (efd == -1)
|
if (efd == -1)
|
||||||
g_error ("epoll_create () failed: %s", g_strerror (errno));
|
g_error ("epoll_create1 () failed: %s", g_strerror (errno));
|
||||||
|
|
||||||
ev.events = EPOLLIN;
|
ev.events = EPOLLIN;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user