]> git.openfabrics.org - ~shefty/librdmacm.git/commitdiff
rspreload: Fix state checks in dup2
authorSean Hefty <sean.hefty@intel.com>
Fri, 7 Sep 2012 17:20:53 +0000 (10:20 -0700)
committerSean Hefty <sean.hefty@intel.com>
Fri, 7 Sep 2012 17:20:53 +0000 (10:20 -0700)
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
src/preload.c

index 4ba38f5f28c75d7e592d71da1aa9a2539f075a94..fb2149bf4673ff821bfdc78a644875a2754121fa 100644 (file)
@@ -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) {