]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:smbd: handle NETWORK_ACCESS_DENIED in smbXsrv_client_connection_pass_loop()
authorStefan Metzmacher <metze@samba.org>
Thu, 25 Jun 2020 20:43:47 +0000 (22:43 +0200)
committerStefan Metzmacher <metze@samba.org>
Wed, 8 Jul 2020 15:54:41 +0000 (15:54 +0000)
smbd_add_connection() may return a valid connection together with
NT_STATUS_NETWORK_ACCESS_DENIED.

We need additional cleanup for that case.

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

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Günther Deschner <gd@samba.org>
source3/smbd/smbXsrv_client.c

index f61ab3da35b0ecef54c3dcd9d053104c289945b5..ece8859867238d66e266232fda090fefe89bb1fa 100644 (file)
@@ -680,6 +680,10 @@ static void smbXsrv_client_connection_pass_loop(struct tevent_req *subreq)
                                     sock_fd,
                                     pass_info0->initial_connect_time,
                                     &xconn);
+       if (NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) {
+               DLIST_REMOVE(client->connections, xconn);
+               TALLOC_FREE(xconn);
+       }
        if (!NT_STATUS_IS_OK(status)) {
                close(sock_fd);
                sock_fd = -1;