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

ctdb-locking: Avoid resetting talloc destructor

Let ctdb_lock_request_destructor() take care of the proper cleanup.
If the request if freed from the callback function, then the lock context
should not be freed.  Setting request->lctx to NULL takes care of that
in the destructor.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11293

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
Amitay Isaacs 2015-06-02 11:25:44 +10:00 committed by Amitay Isaacs
parent 2b352ff205
commit bc747030d4

View File

@ -353,8 +353,10 @@ static void process_callbacks(struct lock_context *lock_ctx, bool locked)
request = lock_ctx->request;
if (lock_ctx->auto_mark) {
/* Reset the destructor, so request is not removed from the list */
talloc_set_destructor(request, NULL);
/* Since request may be freed in the callback, unset the lock
* context, so request destructor will not free lock context.
*/
request->lctx = NULL;
}
/* Since request may be freed in the callback, unset the request */