r17300: Try to fix some segfaults in ldb_ildap module, when the remote server
authorAndrew Bartlett <abartlet@samba.org>
Sat, 29 Jul 2006 01:22:22 +0000 (01:22 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:15:08 +0000 (14:15 -0500)
drops the connection.  The reconnect code needs to be hooked in here.

Andrew Bartlett
(This used to be commit 778debedea77ac81cc05f00f27bb96a58cbebcd8)

source4/lib/ldb/ldb_ildap/ldb_ildap.c

index ae92ede8ce46f5205756e52613a78d26eb7c1108..a4427b8b95a70f196c3f5d9d1c6488e11808f6f2 100644 (file)
@@ -360,6 +360,11 @@ static int ildb_request_send(struct ldb_module *module, struct ldap_message *msg
                return LDB_ERR_OPERATIONS_ERROR;
        }
 
+       if (!req->conn) {
+               ldb_set_errstring(module->ldb, talloc_asprintf(module, "connection to remote LDAP server dropped?"));
+               return LDB_ERR_OPERATIONS_ERROR;
+       }
+
        ildb_ac->req = talloc_steal(ildb_ac, req);
        ildb_ac->module = module;
        ildb_ac->context = context;
@@ -802,7 +807,7 @@ static int ildb_connect(struct ldb_context *ldb, const char *url,
                goto failed;
        }
 
-       if (flags == LDB_FLG_RECONNECT) {
+       if (flags & LDB_FLG_RECONNECT) {
                ldap_set_reconn_params(ildb->ldap, 10);
        }