X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=inline;f=lib%2Fdup-safer-flag.c;h=10d6a1bb31c7279aa4d1350672e9a5096fd1126d;hb=75ce01c4382e5acf45599baaade587f78ddfa956;hp=3549d0d12f869708a7442bf94959de37f4d2e12d;hpb=a3255b1b9848874572e0df9d0609e263da50de4b;p=gnulib.git diff --git a/lib/dup-safer-flag.c b/lib/dup-safer-flag.c index 3549d0d12..10d6a1bb3 100644 --- a/lib/dup-safer-flag.c +++ b/lib/dup-safer-flag.c @@ -1,7 +1,7 @@ /* Duplicate a file descriptor result, avoiding clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. - Copyright (C) 2001, 2004-2006, 2009 Free Software Foundation, Inc. + Copyright (C) 2001, 2004-2006, 2009-2010 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -39,16 +39,6 @@ int dup_safer_flag (int fd, int flag) { - if (flag & O_CLOEXEC) - { -#if defined F_DUPFD_CLOEXEC && !REPLACE_FCHDIR - return fcntl (fd, F_DUPFD_CLOEXEC, STDERR_FILENO + 1); -#else - /* fd_safer_flag calls us back, but eventually the recursion - unwinds and does the right thing. */ - fd = dup_cloexec (fd); - return fd_safer_flag (fd, flag); -#endif - } - return dup_safer (fd); + return fcntl (fd, (flag & O_CLOEXEC) ? F_DUPFD_CLOEXEC : F_DUPFD, + STDERR_FILENO + 1); }