mirror of
https://github.com/samba-team/samba.git
synced 2025-02-02 09:47:23 +03:00
s3:libsmb: Pass memory context to cli_full_connection_creds()
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Volker Lendecke <vl@samba.org>
This commit is contained in:
parent
5c63d5bdab
commit
d2297b41a2
@ -34,11 +34,16 @@ static struct cli_state *connect_one(struct cli_credentials *creds,
|
||||
NTSTATUS nt_status;
|
||||
uint32_t flags = 0;
|
||||
|
||||
nt_status = cli_full_connection_creds(&c, lp_netbios_name(), server,
|
||||
NULL, port,
|
||||
share, "?????",
|
||||
creds,
|
||||
flags);
|
||||
nt_status = cli_full_connection_creds(talloc_tos(),
|
||||
&c,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
port,
|
||||
share,
|
||||
"?????",
|
||||
creds,
|
||||
flags);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
DBG_ERR("cli_full_connection failed! (%s)\n",
|
||||
nt_errstr(nt_status));
|
||||
|
@ -295,6 +295,7 @@ static NTSTATUS winexe_svc_upload(
|
||||
const DATA_BLOB *binary = NULL;
|
||||
|
||||
status = cli_full_connection_creds(
|
||||
talloc_tos(),
|
||||
&cli,
|
||||
NULL,
|
||||
hostname,
|
||||
@ -1857,6 +1858,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
status = cli_full_connection_creds(
|
||||
talloc_tos(),
|
||||
&cli,
|
||||
lp_netbios_name(),
|
||||
options.hostname,
|
||||
|
@ -1143,7 +1143,8 @@ static NTSTATUS libnet_join_connect_dc_ipc(const char *dc,
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
status = cli_full_connection_creds(cli,
|
||||
status = cli_full_connection_creds(NULL,
|
||||
cli,
|
||||
NULL,
|
||||
dc,
|
||||
NULL, 0,
|
||||
@ -1773,7 +1774,9 @@ NTSTATUS libnet_join_ok(struct messaging_context *msg_ctx,
|
||||
CRED_SPECIFIED);
|
||||
}
|
||||
|
||||
status = cli_full_connection_creds(&cli, NULL,
|
||||
status = cli_full_connection_creds(frame,
|
||||
&cli,
|
||||
NULL,
|
||||
dc_name,
|
||||
NULL, 0,
|
||||
"IPC$", "IPC",
|
||||
@ -1789,7 +1792,8 @@ NTSTATUS libnet_join_ok(struct messaging_context *msg_ctx,
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
status = cli_full_connection_creds(&cli,
|
||||
status = cli_full_connection_creds(frame,
|
||||
&cli,
|
||||
NULL,
|
||||
dc_name,
|
||||
NULL, 0,
|
||||
|
@ -3806,7 +3806,8 @@ NTSTATUS cli_full_connection_creds_recv(struct tevent_req *req,
|
||||
return NT_STATUS_OK;
|
||||
}
|
||||
|
||||
NTSTATUS cli_full_connection_creds(struct cli_state **output_cli,
|
||||
NTSTATUS cli_full_connection_creds(TALLOC_CTX *mem_ctx,
|
||||
struct cli_state **output_cli,
|
||||
const char *my_name,
|
||||
const char *dest_host,
|
||||
const struct sockaddr_storage *dest_ss, int port,
|
||||
@ -3818,7 +3819,7 @@ NTSTATUS cli_full_connection_creds(struct cli_state **output_cli,
|
||||
struct tevent_req *req;
|
||||
NTSTATUS status = NT_STATUS_NO_MEMORY;
|
||||
|
||||
ev = samba_tevent_context_init(talloc_tos());
|
||||
ev = samba_tevent_context_init(mem_ctx);
|
||||
if (ev == NULL) {
|
||||
goto fail;
|
||||
}
|
||||
@ -3832,7 +3833,7 @@ NTSTATUS cli_full_connection_creds(struct cli_state **output_cli,
|
||||
if (!tevent_req_poll_ntstatus(req, ev, &status)) {
|
||||
goto fail;
|
||||
}
|
||||
status = cli_full_connection_creds_recv(req, NULL, output_cli);
|
||||
status = cli_full_connection_creds_recv(req, mem_ctx, output_cli);
|
||||
fail:
|
||||
TALLOC_FREE(ev);
|
||||
return status;
|
||||
@ -3968,9 +3969,16 @@ struct cli_state *get_ipc_connect(char *server,
|
||||
flags |= CLI_FULL_CONNECTION_FORCE_SMB1;
|
||||
flags |= CLI_FULL_CONNECTION_IPC;
|
||||
|
||||
nt_status = cli_full_connection_creds(&cli, NULL, server, server_ss, 0, "IPC$", "IPC",
|
||||
nt_status = cli_full_connection_creds(NULL,
|
||||
&cli,
|
||||
NULL,
|
||||
server,
|
||||
server_ss,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
creds,
|
||||
flags);
|
||||
flags);
|
||||
|
||||
if (NT_STATUS_IS_OK(nt_status)) {
|
||||
return cli;
|
||||
|
@ -844,12 +844,17 @@ SMBC_attr_server(TALLOC_CTX *ctx,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
nt_status = cli_full_connection_creds(&ipc_cli,
|
||||
lp_netbios_name(), server,
|
||||
NULL, 0, "IPC$", "?????",
|
||||
creds,
|
||||
flags);
|
||||
if (! NT_STATUS_IS_OK(nt_status)) {
|
||||
nt_status = cli_full_connection_creds(NULL,
|
||||
&ipc_cli,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
0,
|
||||
"IPC$",
|
||||
"?????",
|
||||
creds,
|
||||
flags);
|
||||
if (! NT_STATUS_IS_OK(nt_status)) {
|
||||
TALLOC_FREE(creds);
|
||||
DEBUG(1,("cli_full_connection failed! (%s)\n",
|
||||
nt_errstr(nt_status)));
|
||||
|
@ -112,7 +112,8 @@ struct tevent_req *cli_full_connection_creds_send(
|
||||
NTSTATUS cli_full_connection_creds_recv(struct tevent_req *req,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
struct cli_state **output_cli);
|
||||
NTSTATUS cli_full_connection_creds(struct cli_state **output_cli,
|
||||
NTSTATUS cli_full_connection_creds(TALLOC_CTX *mem_ctx,
|
||||
struct cli_state **output_cli,
|
||||
const char *my_name,
|
||||
const char *dest_host,
|
||||
const struct sockaddr_storage *dest_ss, int port,
|
||||
|
@ -2491,10 +2491,16 @@ static bool spoolss_connect_to_client(struct rpc_pipe_client **pp_pipe, struct c
|
||||
}
|
||||
|
||||
/* setup the connection */
|
||||
ret = cli_full_connection_creds( pp_cli, lp_netbios_name(), remote_machine,
|
||||
&rm_addr, 0, "IPC$", "IPC",
|
||||
anon_creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
ret = cli_full_connection_creds(NULL,
|
||||
pp_cli,
|
||||
lp_netbios_name(),
|
||||
remote_machine,
|
||||
&rm_addr,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
anon_creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
TALLOC_FREE(anon_creds);
|
||||
if ( !NT_STATUS_IS_OK( ret ) ) {
|
||||
DEBUG(2,("spoolss_connect_to_client: connection to [%s] failed!\n",
|
||||
|
@ -3516,11 +3516,16 @@ static WERROR cmd_spoolss_printercmp(struct rpc_pipe_client *cli,
|
||||
|
||||
/* first get the connection to the remote server */
|
||||
|
||||
nt_status = cli_full_connection_creds(&cli_server2, lp_netbios_name(), argv[2],
|
||||
NULL, 0,
|
||||
"IPC$", "IPC",
|
||||
creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
nt_status = cli_full_connection_creds(mem_ctx,
|
||||
&cli_server2,
|
||||
lp_netbios_name(),
|
||||
argv[2],
|
||||
NULL,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
if ( !NT_STATUS_IS_OK(nt_status) )
|
||||
return WERR_GEN_FAILURE;
|
||||
|
||||
|
@ -1305,16 +1305,17 @@ out_free:
|
||||
}
|
||||
|
||||
if (transport == NCACN_NP) {
|
||||
nt_status = cli_full_connection_creds(
|
||||
&cli,
|
||||
lp_netbios_name(),
|
||||
host,
|
||||
opt_ipaddr ? &server_ss : NULL,
|
||||
opt_port,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
creds,
|
||||
flags);
|
||||
nt_status = cli_full_connection_creds(frame,
|
||||
&cli,
|
||||
lp_netbios_name(),
|
||||
host,
|
||||
opt_ipaddr ? &server_ss
|
||||
: NULL,
|
||||
opt_port,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
creds,
|
||||
flags);
|
||||
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
DEBUG(0, ("Cannot connect to server. Error was %s\n",
|
||||
|
@ -219,7 +219,8 @@ static struct cli_state *connect_one(char *share)
|
||||
|
||||
slprintf(myname,sizeof(myname), "lock-%lu-%u", (unsigned long)getpid(), count++);
|
||||
|
||||
nt_status = cli_full_connection_creds(&c,
|
||||
nt_status = cli_full_connection_creds(NULL,
|
||||
&c,
|
||||
myname,
|
||||
server_n,
|
||||
NULL,
|
||||
|
@ -349,7 +349,8 @@ static bool torture_open_connection_share(struct cli_state **c,
|
||||
{
|
||||
NTSTATUS status;
|
||||
|
||||
status = cli_full_connection_creds(c,
|
||||
status = cli_full_connection_creds(NULL,
|
||||
c,
|
||||
myname,
|
||||
hostname,
|
||||
NULL, /* dest_ss */
|
||||
@ -1708,7 +1709,8 @@ static bool run_tcon_devtype_test(int dummy)
|
||||
NTSTATUS status;
|
||||
bool ret = True;
|
||||
|
||||
status = cli_full_connection_creds(&cli1,
|
||||
status = cli_full_connection_creds(NULL,
|
||||
&cli1,
|
||||
myname,
|
||||
host,
|
||||
NULL, /* dest_ss */
|
||||
|
@ -135,7 +135,8 @@ int main(int argc, char **argv)
|
||||
|
||||
creds = samba_cmdline_get_creds();
|
||||
|
||||
status = cli_full_connection_creds(&cli,
|
||||
status = cli_full_connection_creds(frame,
|
||||
&cli,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
|
@ -2393,11 +2393,16 @@ static int net_ads_printer_publish(struct net_context *c,
|
||||
CRED_USE_KERBEROS_REQUIRED,
|
||||
CRED_SPECIFIED);
|
||||
|
||||
nt_status = cli_full_connection_creds(&cli, lp_netbios_name(), servername,
|
||||
&server_ss, 0,
|
||||
"IPC$", "IPC",
|
||||
c->creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
nt_status = cli_full_connection_creds(c,
|
||||
&cli,
|
||||
lp_netbios_name(),
|
||||
servername,
|
||||
&server_ss,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
c->creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
|
||||
if (NT_STATUS_IS_ERR(nt_status)) {
|
||||
d_fprintf(stderr, _("Unable to open a connection to %s to "
|
||||
|
@ -116,11 +116,16 @@ NTSTATUS connect_to_service(struct net_context *c,
|
||||
flags |= CLI_FULL_CONNECTION_IPC;
|
||||
}
|
||||
|
||||
nt_status = cli_full_connection_creds(cli_ctx, NULL, server_name,
|
||||
server_ss, c->opt_port,
|
||||
service_name, service_type,
|
||||
c->creds,
|
||||
flags);
|
||||
nt_status = cli_full_connection_creds(c,
|
||||
cli_ctx,
|
||||
NULL,
|
||||
server_name,
|
||||
server_ss,
|
||||
c->opt_port,
|
||||
service_name,
|
||||
service_type,
|
||||
c->creds,
|
||||
flags);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
d_fprintf(stderr, _("Could not connect to server %s\n"),
|
||||
server_name);
|
||||
@ -177,11 +182,16 @@ NTSTATUS connect_to_ipc_anonymous(struct net_context *c,
|
||||
return NT_STATUS_NO_MEMORY;
|
||||
}
|
||||
|
||||
nt_status = cli_full_connection_creds(cli_ctx, c->opt_requester_name,
|
||||
server_name, server_ss, c->opt_port,
|
||||
"IPC$", "IPC",
|
||||
anon_creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
nt_status = cli_full_connection_creds(c,
|
||||
cli_ctx,
|
||||
c->opt_requester_name,
|
||||
server_name,
|
||||
server_ss,
|
||||
c->opt_port,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
anon_creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
|
||||
if (NT_STATUS_IS_OK(nt_status)) {
|
||||
return nt_status;
|
||||
|
@ -95,11 +95,16 @@ static struct con_struct *create_cs(struct net_context *c,
|
||||
ZERO_STRUCTP(cs);
|
||||
talloc_set_destructor(cs, cs_destructor);
|
||||
|
||||
nt_status = cli_full_connection_creds(&cs->cli, lp_netbios_name(), lp_netbios_name(),
|
||||
&loopback_ss, 0,
|
||||
"IPC$", "IPC",
|
||||
anon_creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
nt_status = cli_full_connection_creds(c,
|
||||
&cs->cli,
|
||||
lp_netbios_name(),
|
||||
lp_netbios_name(),
|
||||
&loopback_ss,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
anon_creds,
|
||||
CLI_FULL_CONNECTION_IPC);
|
||||
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
DEBUG(2,("create_cs: Connect failed. Error was %s\n", nt_errstr(nt_status)));
|
||||
|
@ -846,11 +846,16 @@ static struct cli_state *connect_one(struct cli_credentials *creds,
|
||||
NTSTATUS nt_status;
|
||||
uint32_t flags = 0;
|
||||
|
||||
nt_status = cli_full_connection_creds(&c, lp_netbios_name(), server,
|
||||
NULL, 0,
|
||||
share, "?????",
|
||||
creds,
|
||||
flags);
|
||||
nt_status = cli_full_connection_creds(talloc_tos(),
|
||||
&c,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
0,
|
||||
share,
|
||||
"?????",
|
||||
creds,
|
||||
flags);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status)));
|
||||
return NULL;
|
||||
|
@ -523,11 +523,16 @@ static struct cli_state *connect_one(const char *share)
|
||||
NTSTATUS nt_status;
|
||||
uint32_t flags = 0;
|
||||
|
||||
nt_status = cli_full_connection_creds(&c, lp_netbios_name(), server,
|
||||
NULL, 0,
|
||||
share, "?????",
|
||||
samba_cmdline_get_creds(),
|
||||
flags);
|
||||
nt_status = cli_full_connection_creds(talloc_tos(),
|
||||
&c,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
0,
|
||||
share,
|
||||
"?????",
|
||||
samba_cmdline_get_creds(),
|
||||
flags);
|
||||
if (!NT_STATUS_IS_OK(nt_status)) {
|
||||
DEBUG(0,("cli_full_connection failed! (%s)\n", nt_errstr(nt_status)));
|
||||
return NULL;
|
||||
|
@ -720,15 +720,16 @@ int main(int argc, char **argv)
|
||||
talloc_strdup(select_stmt->cols, default_column);
|
||||
}
|
||||
|
||||
status = cli_full_connection_creds(&c,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
samba_cmdline_get_creds(),
|
||||
flags);
|
||||
status = cli_full_connection_creds(talloc_tos(),
|
||||
&c,
|
||||
lp_netbios_name(),
|
||||
server,
|
||||
NULL,
|
||||
0,
|
||||
"IPC$",
|
||||
"IPC",
|
||||
samba_cmdline_get_creds(),
|
||||
flags);
|
||||
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
DBG_ERR("failed to connect to IPC$: %s\n",
|
||||
|
Loading…
x
Reference in New Issue
Block a user