s3:libsmb/unexpected: don't use talloc_tos() in async code
authorStefan Metzmacher <metze@samba.org>
Wed, 14 Feb 2024 12:49:43 +0000 (13:49 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 5 Apr 2024 12:24:41 +0000 (12:24 +0000)
It's not needed and it requires the caller to setup a
stackframe...

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

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source3/libsmb/unexpected.c

index b81d3794dd847ba5bb44cb2ad55b6e20fe9d7d01..2b6219e2dded7a69754fd1a9eac43538307b44ed 100644 (file)
@@ -248,7 +248,7 @@ static void nb_packet_got_query(struct tevent_req *req)
        ssize_t nread;
        int err;
 
-       nread = tstream_read_packet_recv(req, talloc_tos(), &buf, &err);
+       nread = tstream_read_packet_recv(req, client, &buf, &err);
        TALLOC_FREE(req);
        if (nread < (ssize_t)sizeof(struct nb_packet_query)) {
                DEBUG(10, ("read_packet_recv returned %d (%s)\n",
@@ -280,6 +280,8 @@ static void nb_packet_got_query(struct tevent_req *req)
                }
        }
 
+       TALLOC_FREE(buf);
+
        client->ack.byte = 0;
        client->ack.iov[0].iov_base = &client->ack.byte;
        client->ack.iov[0].iov_len = 1;
@@ -333,7 +335,7 @@ static void nb_packet_client_read_done(struct tevent_req *req)
        uint8_t *buf;
        int err;
 
-       nread = tstream_read_packet_recv(req, talloc_tos(), &buf, &err);
+       nread = tstream_read_packet_recv(req, client, &buf, &err);
        TALLOC_FREE(req);
        if (nread == 1) {
                DEBUG(10, ("Protocol error, received data on write-only "