diff options
author | Kristian Høgsberg <krh@bitplanet.net> | 2011-05-04 12:35:16 -0400 |
---|---|---|
committer | Kristian Høgsberg <krh@bitplanet.net> | 2011-05-04 12:35:16 -0400 |
commit | 8600408cedfda025115683680003352654c8f483 (patch) | |
tree | 74faad2a0711fdfc5e7891f936ddf830ff6a7f3f | |
parent | 92d61f13b980e4ecc16724e2b0d823dd4f9a820b (diff) |
connection: Handle fd passing in an CLOEXEC safe way
-rw-r--r-- | wayland/connection.c | 4 |
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(); |