From 145e9c03553f4d2a6f4b6217435fb22147f8e57e Mon Sep 17 00:00:00 2001 From: Sean Hefty Date: Fri, 7 Sep 2012 10:20:53 -0700 Subject: [PATCH] rspreload: Fix state checks in dup2 Signed-off-by: Sean Hefty --- src/preload.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/preload.c b/src/preload.c index 4ba38f5f..fb2149bf 100644 --- a/src/preload.c +++ b/src/preload.c @@ -978,8 +978,12 @@ int dup2(int oldfd, int newfd) init_preload(); oldfdi = idm_lookup(&idm, oldfd); - if (oldfdi && oldfdi->type == fd_fork) - fork_passive(oldfd); + if (oldfdi) { + if (oldfdi->state == fd_fork_passive) + fork_passive(oldfd); + else if (oldfdi->state == fd_fork_active) + fork_active(oldfd); + } newfdi = idm_lookup(&idm, newfd); if (newfdi) { -- 2.45.2