1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00

s4-ldbwrap: ensure session_info in ldb opaque remains valid

A DRS DsBind handle can be re-used in a later connection. This implies
reuse of the session_info for the connection. If the first connection
is shutdown then the session_info in the sam context on the 2nd
connection must remain valid.
This commit is contained in:
Andrew Tridgell 2010-08-17 18:29:42 +10:00
parent 8835a360ca
commit bb2ba90663

View File

@ -248,6 +248,21 @@ static int ldb_wrap_destructor(struct ldb_wrap *w)
return NULL;
}
if (session_info) {
/* take a reference to the session_info, as it is
* possible for the ldb to live longer than the
* session_info. This happens when a DRS DsBind call
* reuses a handle, but the original connection is
* shutdown. The token for the new connection is still
* valid, so we need the session_info to remain valid for
* ldb modules to use
*/
if (talloc_reference(w, session_info) == NULL) {
talloc_free(ldb);
return NULL;
}
}
w->ldb = ldb;
DLIST_ADD(ldb_wrap_list, w);