libsmb: Don't pass "cli" to cli_posix_readlink_recv
authorVolker Lendecke <vl@samba.org>
Mon, 25 Mar 2019 11:32:07 +0000 (12:32 +0100)
committerJeremy Allison <jra@samba.org>
Wed, 27 Mar 2019 11:20:23 +0000 (11:20 +0000)
From my point of view the option to change "cli" between
cli_posix_readlink_send and _recv is not necessary.

Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/libsmb/clifile.c
source3/libsmb/proto.h

index 5922557263c1af2df75d5aa77e08e5b54ec3fec2..8e157c83e994b6f4986cf52bebda32955a515f85 100644 (file)
@@ -300,6 +300,7 @@ NTSTATUS cli_posix_symlink(struct cli_state *cli,
 ****************************************************************************/
 
 struct cli_posix_readlink_state {
+       struct cli_state *cli;
        uint8_t *data;
        uint32_t num_data;
 };
@@ -321,6 +322,7 @@ struct tevent_req *cli_posix_readlink_send(TALLOC_CTX *mem_ctx,
        if (req == NULL) {
                return NULL;
        }
+       state->cli = cli;
 
        /*
         * Len is in bytes, we need it in UCS2 units.
@@ -363,26 +365,29 @@ static void cli_posix_readlink_done(struct tevent_req *subreq)
        tevent_req_done(req);
 }
 
-NTSTATUS cli_posix_readlink_recv(struct tevent_req *req, struct cli_state *cli,
-                               char *retpath, size_t len)
+NTSTATUS cli_posix_readlink_recv(
+       struct tevent_req *req, char *retpath, size_t len)
 {
        struct cli_posix_readlink_state *state = tevent_req_data(
                req, struct cli_posix_readlink_state);
        NTSTATUS status;
        char *converted = NULL;
        size_t converted_size = 0;
+       bool ok;
 
        if (tevent_req_is_nterror(req, &status)) {
                return status;
        }
        /* The returned data is a pushed string, not raw data. */
-       if (!convert_string_talloc(state,
-                               smbXcli_conn_use_unicode(cli->conn) ? CH_UTF16LE : CH_DOS, 
-                               CH_UNIX,
-                               state->data,
-                               state->num_data,
-                               &converted,
-                               &converted_size)) {
+       ok = convert_string_talloc(
+               state,
+               smbXcli_conn_use_unicode(state->cli->conn) ? CH_UTF16LE:CH_DOS,
+               CH_UNIX,
+               state->data,
+               state->num_data,
+               &converted,
+               &converted_size);
+       if (!ok) {
                return NT_STATUS_NO_MEMORY;
        }
 
@@ -430,7 +435,7 @@ NTSTATUS cli_posix_readlink(struct cli_state *cli, const char *fname,
                goto fail;
        }
 
-       status = cli_posix_readlink_recv(req, cli, linkpath, len);
+       status = cli_posix_readlink_recv(req, linkpath, len);
 
  fail:
        TALLOC_FREE(frame);
index 4b9cfbea96e1c55357991f8764a466ed587d12c1..b488c051ed571171a47d7d272e5e5651d8e7a1c8 100644 (file)
@@ -267,8 +267,8 @@ struct tevent_req *cli_posix_readlink_send(TALLOC_CTX *mem_ctx,
                                        struct cli_state *cli,
                                        const char *fname,
                                        size_t len);
-NTSTATUS cli_posix_readlink_recv(struct tevent_req *req, struct cli_state *cli,
-                               char *retpath, size_t len);
+NTSTATUS cli_posix_readlink_recv(
+       struct tevent_req *req, char *retpath, size_t len);
 NTSTATUS cli_posix_readlink(struct cli_state *cli, const char *fname,
                        char *linkpath, size_t len);
 struct tevent_req *cli_posix_hardlink_send(TALLOC_CTX *mem_ctx,