Skip to content

Commit 49f9710

Browse files
committed
qrexec-daemon: Use close_range where possible
This makes things faster and trivially more correct.
1 parent 43f49f0 commit 49f9710

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

daemon/qrexec-daemon.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <inttypes.h>
2323
#include <stdio.h>
2424
#include <stdlib.h>
25+
#include <sys/syscall.h>
2526
#include <unistd.h>
2627
#include <signal.h>
2728
#include <errno.h>
@@ -1122,8 +1123,14 @@ _Noreturn static void handle_execute_service_child(
11221123
const struct service_params *request_id) {
11231124
int i;
11241125

1125-
for (i = 3; i < MAX_FDS; i++)
1126-
close(i);
1126+
#ifdef SYS_close_range
1127+
int close_range_res = syscall(SYS_close_range, 3, ~0U, 0);
1128+
#else
1129+
int close_range_res = -1;
1130+
#endif
1131+
if (close_range_res != 0)
1132+
for (i = 3; i < MAX_FDS; i++)
1133+
close(i);
11271134

11281135
char *user, *target, *requested_target;
11291136
int autostart;

0 commit comments

Comments
 (0)