summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2011-05-04 12:35:16 -0400
committerKristian Høgsberg <krh@bitplanet.net>2011-05-04 12:35:16 -0400
commit8600408cedfda025115683680003352654c8f483 (patch)
tree74faad2a0711fdfc5e7891f936ddf830ff6a7f3f
parent92d61f13b980e4ecc16724e2b0d823dd4f9a820b (diff)
connection: Handle fd passing in an CLOEXEC safe way
-rw-r--r--wayland/connection.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/wayland/connection.c b/wayland/connection.c
index 0d705b5..bade37f 100644
--- a/wayland/connection.c
+++ b/wayland/connection.c
@@ -300,7 +300,7 @@ wl_connection_data(struct wl_connection *connection, uint32_t mask)
msg.msg_flags = 0;
do {
- len = recvmsg(connection->fd, &msg, 0);
+ len = recvmsg(connection->fd, &msg, MSG_CMSG_CLOEXEC);
} while (len < 0 && errno == EINTR);
if (len < 0) {
@@ -459,7 +459,7 @@ wl_connection_vmarshal(struct wl_connection *connection,
extra += sizeof *fd_ptr;
fd = va_arg(ap, int);
- dup_fd = dup(fd);
+ dup_fd = fcntl(fd, F_DUPFD_CLOEXEC, 0);
if (dup_fd < 0) {
fprintf(stderr, "dup failed: %m");
abort();