diff options
author | Krishnan Parthasarathi <kparthas@redhat.com> | 2018-10-09 15:17:57 +0530 |
---|---|---|
committer | Raghavendra G <rgowdapp@redhat.com> | 2018-10-11 05:15:28 +0000 |
commit | 23e96fd93c021d4647b940a47df2250fe9159a3b (patch) | |
tree | 0b02841e88c7aedd753d9cd8edb70ed6890ffe77 /libglusterfs | |
parent | 4511435fd353b98551be17d02e1d91e8896164ed (diff) |
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 <kparthas@redhat.com>
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/libglusterfs.sym | 1 | ||||
-rw-r--r-- | libglusterfs/src/syscall.c | 14 | ||||
-rw-r--r-- | libglusterfs/src/syscall.h | 3 |
3 files changed, 18 insertions, 0 deletions
diff --git a/libglusterfs/src/libglusterfs.sym b/libglusterfs/src/libglusterfs.sym index 63022d6d92e..18c9fff34a2 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 a3bc9189257..dd504f734fc 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 f691ebdaa53..9bad49edb7c 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__ */ |