aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@member.fsf.org>2015-12-28 15:08:39 +0100
committerMattias Andrée <maandree@member.fsf.org>2015-12-28 15:08:39 +0100
commitd1342115cef053aff16cbec8e0736162c89bad4a (patch)
tree95fef88de8886eeaaaf5575ae8bbe5809f7060b7
parentdaemonise: support keeping arbitrary fd:s open (diff)
downloadslibc-d1342115cef053aff16cbec8e0736162c89bad4a.tar.gz
slibc-d1342115cef053aff16cbec8e0736162c89bad4a.tar.bz2
slibc-d1342115cef053aff16cbec8e0736162c89bad4a.tar.xz
fix dup_at_least_3: must duplicate at least once
Signed-off-by: Mattias Andrée <maandree@member.fsf.org>
-rw-r--r--src/unistd/daemonise.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/unistd/daemonise.c b/src/unistd/daemonise.c
index e61b72f..2936e31 100644
--- a/src/unistd/daemonise.c
+++ b/src/unistd/daemonise.c
@@ -57,7 +57,7 @@ static int dup_at_least_3(int old)
int intermediary[] = { -1, -1, -1 };
int i, saved_errno;
- while (old < 3)
+ do
{
if (old = dup(old), old == -1)
goto fail;
@@ -66,6 +66,7 @@ static int dup_at_least_3(int old)
abort();
intermediary[i++] = old;
}
+ while (old < 3);
fail:
saved_errno = errno;