Use fcnt F_DUPFD_CLOEXEC to dup an fd

Closes #38
This commit is contained in:
Wim Taymans 2020-08-06 11:08:20 +02:00
parent f961c726de
commit 8a9bb9dabb
2 changed files with 3 additions and 2 deletions

View file

@ -26,6 +26,7 @@
#include "config.h"
#endif
#include <unistd.h>
#include <fcntl.h>
#include <spa/utils/result.h>
@ -83,7 +84,7 @@ static GstPipeWireCore *make_core (int fd)
if (fd == -1)
core->core = pw_context_connect (core->context, NULL, 0);
else
core->core = pw_context_connect_fd (core->context, dup(fd), NULL, 0);
core->core = pw_context_connect_fd (core->context, fcntl(fd, F_DUPFD_CLOEXEC, 3), NULL, 0);
if (core->core == NULL)
goto connection_failed;

View file

@ -635,7 +635,7 @@ static int impl_steal_fd(struct pw_protocol_client *client)
if (impl->source == NULL)
return -EIO;
fd = dup(impl->source->fd);
fd = fcntl(impl->source->fd, F_DUPFD_CLOEXEC, 3);
if (fd < 0)
return -errno;