summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--client.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/client.c b/client.c
index 108873e7..4e7f7dcc 100644
--- a/client.c
+++ b/client.c
@@ -520,7 +520,7 @@ client_write_open(void *data, size_t datalen)
errno = EBADF;
else {
cf->fd = dup(msg->fd);
- if (client_flags & CLIENT_CONTROL)
+ if (~client_flags & CLIENT_CONTROL)
close(msg->fd); /* can only be used once */
}
}
@@ -675,7 +675,8 @@ client_read_open(void *data, size_t datalen)
errno = EBADF;
else {
cf->fd = dup(msg->fd);
- close(msg->fd); /* can only be used once */
+ if (~client_flags & CLIENT_CONTROL)
+ close(msg->fd); /* can only be used once */
}
}
if (cf->fd == -1) {