From: Volker Lendecke Date: Mon, 25 Mar 2019 11:32:07 +0000 (+0100) Subject: libsmb: Don't pass "cli" to cli_posix_readlink_recv X-Git-Tag: tdb-1.4.1~619 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3478e9d124f95344d67f1794e92658fa253b48fd;p=thirdparty%2Fsamba.git libsmb: Don't pass "cli" to cli_posix_readlink_recv 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 Reviewed-by: Jeremy Allison --- diff --git a/source3/libsmb/clifile.c b/source3/libsmb/clifile.c index 5922557263c..8e157c83e99 100644 --- a/source3/libsmb/clifile.c +++ b/source3/libsmb/clifile.c @@ -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); diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h index 4b9cfbea96e..b488c051ed5 100644 --- a/source3/libsmb/proto.h +++ b/source3/libsmb/proto.h @@ -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,