]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
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)
committerJule Anger <janger@samba.org>
Wed, 3 Jul 2024 08:48:12 +0000 (08:48 +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>
(cherry picked from commit f90cf0822d6e66426d72f92bd585119066e2a9c3)

source3/libsmb/unexpected.c

index ced46969b8868e78daf69fcf5ffdb585f375aa88..dbcbc04b2d684156cef35d509955227a767c939b 100644 (file)
@@ -246,7 +246,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",
@@ -278,6 +278,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;
@@ -331,7 +333,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 "