0001-Use-portable-close-on-exec-syscalls.patch
application/octet-stream
Filename: 0001-Use-portable-close-on-exec-syscalls.patch
Type: application/octet-stream
Part: 0
Patch
Format: format-patch
Series: patch 0001
Subject: Use portable close-on-exec syscalls.
| File | + | − |
|---|---|---|
| src/backend/postmaster/postmaster.c | 9 | 1 |
From 6f278a123caa395f0f487a2b04d7992e573a5fc6 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@enterprisedb.com>
Date: Thu, 9 Aug 2018 15:38:17 +0530
Subject: [PATCH 1/4] Use portable close-on-exec syscalls.
---
src/backend/postmaster/postmaster.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 135aa29bfeb..42134d4ed28 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -6458,7 +6458,7 @@ static void
InitFsyncFdSocketPair(void)
{
Assert(MyProcPid == PostmasterPid);
- if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, fsync_fds) < 0)
+ if (socketpair(AF_UNIX, SOCK_STREAM, 0, fsync_fds) < 0)
ereport(FATAL,
(errcode_for_file_access(),
errmsg_internal("could not create fsync sockets: %m")));
@@ -6470,11 +6470,19 @@ InitFsyncFdSocketPair(void)
ereport(FATAL,
(errcode_for_socket_access(),
errmsg_internal("could not set fsync process socket to nonblocking mode: %m")));
+ if (fcntl(fsync_fds[FSYNC_FD_PROCESS], F_SETFD, FD_CLOEXEC) == -1)
+ ereport(FATAL,
+ (errcode_for_socket_access(),
+ errmsg_internal("could not set fsync process socket to close-on-exec mode: %m")));
if (fcntl(fsync_fds[FSYNC_FD_SUBMIT], F_SETFL, O_NONBLOCK) == -1)
ereport(FATAL,
(errcode_for_socket_access(),
errmsg_internal("could not set fsync submit socket to nonblocking mode: %m")));
+ if (fcntl(fsync_fds[FSYNC_FD_SUBMIT], F_SETFD, FD_CLOEXEC) == -1)
+ ereport(FATAL,
+ (errcode_for_socket_access(),
+ errmsg_internal("could not set fsync submit socket to close-on-exec mode: %m")));
/*
* FIXME: do DuplicateHandle dance for windows - can that work
--
2.17.0