]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-shell/fork.c
Merge remote-tracking branch 'origin/mdb.master'
[openldap] / servers / slapd / back-shell / fork.c
index 70bd8fb25719f104ecad0d7211646e1ed53ce6be..8175657b433dbb57c99283b57ee9f1ab120d371a 100644 (file)
@@ -2,7 +2,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2004 The OpenLDAP Foundation.
+ * Copyright 1998-2012 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -103,7 +103,12 @@ forkandexec(
        if ( (*rfp = fdopen( c2p[0], "r" )) == NULL || (*wfp = fdopen( p2c[1],
            "w" )) == NULL ) {
                Debug( LDAP_DEBUG_ANY, "fdopen failed\n", 0, 0, 0 );
-               close( c2p[0] );
+               if ( *rfp ) {
+                       fclose( *rfp );
+                       *rfp = NULL;
+               } else {
+                       close( c2p[0] );
+               }
                close( p2c[1] );
 
                return( -1 );