summaryrefslogtreecommitdiff
path: root/lib/cloexec.c
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2009-12-07 01:02:50 +0100
committerBruno Haible <bruno@clisp.org>2009-12-07 01:02:50 +0100
commit68145a074c0cdc9eff8364a62530da01a5f39bcd (patch)
tree5755726b04032864996b7d4ef1e1d53473f448cd /lib/cloexec.c
parent3941f59cb92c262e98b3e554baf4b8921113e1d1 (diff)
downloadgnulib-68145a074c0cdc9eff8364a62530da01a5f39bcd.tar.gz
cloexec: Fix possible compilation error.
Diffstat (limited to 'lib/cloexec.c')
-rw-r--r--lib/cloexec.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/cloexec.c b/lib/cloexec.c
index b862cc6da3..5479477e51 100644
--- a/lib/cloexec.c
+++ b/lib/cloexec.c
@@ -79,7 +79,8 @@ set_cloexec_flag (int desc, bool value)
prior to exec or spawn. Returns -1 and sets errno if FD could not
be duplicated. */
-int dup_cloexec (int fd)
+int
+dup_cloexec (int fd)
{
int nfd;
@@ -107,6 +108,7 @@ int dup_cloexec (int fd)
FALSE, /* InheritHandle */
DUPLICATE_SAME_ACCESS)) /* Options */
{
+ /* TODO: Translate GetLastError () into errno. */
errno = EMFILE;
return -1;
}
@@ -133,12 +135,12 @@ int dup_cloexec (int fd)
nfd = fcntl (fd, F_DUPFD_CLOEXEC, 0);
# if REPLACE_FCHDIR
if (0 <= nfd)
- result = _gl_register_dup (fd, nfd);
+ nfd = _gl_register_dup (fd, nfd);
# endif
# else /* !F_DUPFD_CLOEXEC */
nfd = dup (fd);
- if (0 <= nfd && set_cloexec_flag (nfd, true))
+ if (0 <= nfd && set_cloexec_flag (nfd, true) < 0)
{
int saved_errno = errno;
close (nfd);