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:
parent
8835a360ca
commit
bb2ba90663
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user