security_context_v1: set CLOEXEC for client FDs

Closes: https://gitlab.freedesktop.org/wlroots/wlroots/-/work_items/3949
This commit is contained in:
Simon Ser 2026-07-03 13:59:01 +02:00 committed by Simon Zeni
parent 651917b3eb
commit 327f000532
7 changed files with 39 additions and 19 deletions

22
util/fd.c Normal file
View file

@ -0,0 +1,22 @@
#include <fcntl.h>
#include <wlr/util/log.h>
#include "util/fd.h"
bool set_cloexec(int fd, bool cloexec) {
int flags = fcntl(fd, F_GETFD);
if (flags == -1) {
wlr_log_errno(WLR_ERROR, "fcntl failed");
return false;
}
if (cloexec) {
flags = flags | FD_CLOEXEC;
} else {
flags = flags & ~FD_CLOEXEC;
}
if (fcntl(fd, F_SETFD, flags) == -1) {
wlr_log_errno(WLR_ERROR, "fcntl failed");
return false;
}
return true;
}

View file

@ -3,6 +3,7 @@ wlr_files += files(
'array.c',
'box.c',
'env.c',
'fd.c',
'global.c',
'log.c',
'matrix.c',