From 23e96fd93c021d4647b940a47df2250fe9159a3b Mon Sep 17 00:00:00 2001 From: Krishnan Parthasarathi Date: Tue, 9 Oct 2018 15:17:57 +0530 Subject: socket: set FD_CLOEXEC on all sockets For more information, see http://udrepper.livejournal.com/20407.html BUG: 1236272 Change-Id: I25a645c10bdbe733a81d53cb714eb036251f8129 fixes: bz#1236272 Signed-off-by: Krishnan Parthasarathi --- libglusterfs/src/libglusterfs.sym | 1 + libglusterfs/src/syscall.c | 14 ++++++++++++++ libglusterfs/src/syscall.h | 3 +++ 3 files changed, 18 insertions(+) (limited to 'libglusterfs') diff --git a/libglusterfs/src/libglusterfs.sym b/libglusterfs/src/libglusterfs.sym index 63022d6d92..18c9fff34a 100644 --- a/libglusterfs/src/libglusterfs.sym +++ b/libglusterfs/src/libglusterfs.sym @@ -1051,6 +1051,7 @@ sys_unlink sys_utimensat sys_write sys_writev +sys_socket tbf_init tbf_throttle timespec_now diff --git a/libglusterfs/src/syscall.c b/libglusterfs/src/syscall.c index a3bc918925..dd504f734f 100644 --- a/libglusterfs/src/syscall.c +++ b/libglusterfs/src/syscall.c @@ -727,3 +727,17 @@ sys_fallocate(int fd, int mode, off_t offset, off_t len) errno = ENOSYS; return -1; } + +int +sys_socket(int domain, int type, int protocol) +{ +#ifdef SOCK_CLOEXEC + return socket(domain, type | SOCK_CLOEXEC, protocol); +#endif + int fd = -1; + + fd = socket(domain, type, protocol); + if (fd >= 0) + fcntl(fd, F_SETFD, FD_CLOEXEC); + return fd; +} diff --git a/libglusterfs/src/syscall.h b/libglusterfs/src/syscall.h index f691ebdaa5..9bad49edb7 100644 --- a/libglusterfs/src/syscall.h +++ b/libglusterfs/src/syscall.h @@ -221,4 +221,7 @@ sys_pread(int fd, void *buf, size_t count, off_t offset); ssize_t sys_pwrite(int fd, const void *buf, size_t count, off_t offset); +int +sys_socket(int domain, int type, int protocol); + #endif /* __SYSCALL_H__ */ -- cgit