From: Volker Lendecke Date: Wed, 7 Feb 2018 07:55:03 +0000 (+0100) Subject: libsmb: Fix destructor setup in unexpected.c X-Git-Tag: tevent-0.9.36~112 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=aa29a695fbd0a1f881a2434fd1ce2bdef1d213ce;p=thirdparty%2Fsamba.git libsmb: Fix destructor setup in unexpected.c The destructor does DLIST_REMOVE, so better make sure "client" is in fact member of that list when the destructor fires Signed-off-by: Volker Lendecke Reviewed-by: Ralph Boehme --- diff --git a/source3/libsmb/unexpected.c b/source3/libsmb/unexpected.c index ac6c1cf313c..496bba226d8 100644 --- a/source3/libsmb/unexpected.c +++ b/source3/libsmb/unexpected.c @@ -175,7 +175,6 @@ static void nb_packet_server_listener(struct tevent_context *ev, } client->server = server; - talloc_set_destructor(client, nb_packet_client_destructor); client->out_queue = tevent_queue_create( client, "unexpected packet output"); @@ -198,6 +197,8 @@ static void nb_packet_server_listener(struct tevent_context *ev, DLIST_ADD(server->clients, client); server->num_clients += 1; + talloc_set_destructor(client, nb_packet_client_destructor); + if (server->num_clients > server->max_clients) { DEBUG(10, ("Too many clients, dropping oldest\n"));