diff --git a/ChangeLog b/ChangeLog index 8597a13e94..871ac1ea86 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-12-09 Bruno Haible + + * lib/cloexec.c (set_cloexec_flag): Clarify intent of dup2 call. + 2009-12-08 Eric Blake fchdir: avoid memory leak on re-registration. diff --git a/lib/cloexec.c b/lib/cloexec.c index 18985cb237..69b45b4a39 100644 --- a/lib/cloexec.c +++ b/lib/cloexec.c @@ -71,8 +71,12 @@ set_cloexec_flag (int desc, bool value) errno = EBADF; return -1; } - return dup2 (desc, desc) == desc ? 0 : -1; + if (dup2 (desc, desc) < 0) + /* errno is EBADF here. */ + return -1; + /* There is nothing we can do on this kind of platform. Punt. */ + return 0; #endif }