From 70f046c87a1fc03c3b3132bf3b05d2e4c4495805 Mon Sep 17 00:00:00 2001
From: minus <minus@mnus.de>
Date: Thu, 20 Aug 2015 14:49:54 +0200
Subject: [PATCH] set IPC client sockets to close on exec

---
 sway/ipc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/sway/ipc.c b/sway/ipc.c
index a6c4eb1a..69f4a4f3 100644
--- a/sway/ipc.c
+++ b/sway/ipc.c
@@ -10,6 +10,7 @@
 #include <stdlib.h>
 #include <stropts.h>
 #include <sys/ioctl.h>
+#include <fcntl.h>
 #include "ipc.h"
 #include "log.h"
 #include "config.h"
@@ -78,6 +79,12 @@ int ipc_handle_connection(int fd, uint32_t mask, void *data) {
 		return 0;
 	}
 
+	int flags;
+	if ((flags=fcntl(client_fd, F_GETFD)) == -1 || fcntl(client_fd, F_SETFD, flags|FD_CLOEXEC) == -1) {
+		sway_log_errno(L_INFO, "Unable to set CLOEXEC on IPC client socket");
+		return 0;
+	}
+
 	struct ipc_client* client = malloc(sizeof(struct ipc_client));
 	client->payload_length = 0;
 	client->fd = client_fd;