]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
libsmb: Fix destructor setup in unexpected.c
authorVolker Lendecke <vl@samba.org>
Wed, 7 Feb 2018 07:55:03 +0000 (08:55 +0100)
committerRalph Boehme <slow@samba.org>
Tue, 13 Feb 2018 15:42:22 +0000 (16:42 +0100)
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 <vl@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
source3/libsmb/unexpected.c

index ac6c1cf313c9b61c2817ab14ece76f51156bdf44..496bba226d8cbe1081ec065131814dfa69760c73 100644 (file)
@@ -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"));