diff options
author | jorton <jorton@13f79535-47bb-0310-9956-ffa450edef68> | 2010-01-31 16:27:32 +0000 |
---|---|---|
committer | jorton <jorton@13f79535-47bb-0310-9956-ffa450edef68> | 2010-01-31 16:27:32 +0000 |
commit | ac30cc3d6bd7b01c41aeec8bf74af920abcf5a9b (patch) | |
tree | 10494fe58f0302b4ab3a556e51ab9e98dba5760f /file_io/unix | |
parent | 3b34654c4b8924944f34d45487ebd409b78ea029 (diff) | |
download | libapr-ac30cc3d6bd7b01c41aeec8bf74af920abcf5a9b.tar.gz |
Merge r905040 from trunk:
* file_io/unix/open.c (apr_file_open): Don't set FD_CLOEXEC if it was
already set via O_CLOEXEC.
PR: 46297
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/branches/1.4.x@905066 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'file_io/unix')
-rw-r--r-- | file_io/unix/open.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/file_io/unix/open.c b/file_io/unix/open.c index bf3b43b6a..be0862318 100644 --- a/file_io/unix/open.c +++ b/file_io/unix/open.c @@ -176,9 +176,11 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, if ((flags = fcntl(fd, F_GETFD)) == -1) return errno; - flags |= FD_CLOEXEC; - if (fcntl(fd, F_SETFD, flags) == -1) - return errno; + if ((flags & FD_CLOEXEC) == 0) { + flags |= FD_CLOEXEC; + if (fcntl(fd, F_SETFD, flags) == -1) + return errno; + } } (*new) = (apr_file_t *)apr_pcalloc(pool, sizeof(apr_file_t)); |