From 02fd5b08b55b8ff60eb9f78d5d61f889d102cad0 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 14 Jul 2000 16:54:07 +0000 Subject: Fixed a bug in cmd_interp.c where if user%pass was entered on the command line, the password would still be cached in memory in plain text for the lifetime of the rpcclient command line session. removed loopback connection functions from msrpc-client.c since we don't support that in the server code now anyways. simplify, simplify, ... --jerry (This used to be commit 8599e1bc394b1caee2483ec72d439a34d3f30629) --- source3/lib/cmd_interp.c | 11 +-- source3/lib/msrpc-client.c | 198 --------------------------------------------- 2 files changed, 3 insertions(+), 206 deletions(-) (limited to 'source3') diff --git a/source3/lib/cmd_interp.c b/source3/lib/cmd_interp.c index 5dbb4f9074..201a244385 100644 --- a/source3/lib/cmd_interp.c +++ b/source3/lib/cmd_interp.c @@ -1011,13 +1011,7 @@ static uint32 cmd_set(struct client_info *info, int argc, char *argv[]) *lp = 0; pstrcpy(password, lp + 1); cmd_set_options |= CMD_PASS; - memset(strchr(optarg, '%') + 1, 'X', - strlen(password)); - } - if (usr.ntc.user_name[0] == 0 - && password[0] == 0) - { - cmd_set_options |= CMD_NOPW; + memset(lp+1, 'X', strlen(password)); } break; } @@ -1195,7 +1189,8 @@ static uint32 cmd_set(struct client_info *info, int argc, char *argv[]) { report(out_hnd, "FAILED\n"); } - usr_creds = NULL; + /* ???? --jerry + usr_creds = NULL; */ } if (cmd_str != NULL) { diff --git a/source3/lib/msrpc-client.c b/source3/lib/msrpc-client.c index 8d7efb6fb9..60924ed81c 100644 --- a/source3/lib/msrpc-client.c +++ b/source3/lib/msrpc-client.c @@ -26,29 +26,6 @@ extern int DEBUGLEVEL; -/**************************************************************************** -open the msrpcent sockets -****************************************************************************/ -static BOOL ncalrpc_l_connect(struct msrpc_local *msrpc, const char *pipe_name) -{ - fstring path; - fstring pname; - fstrcpy(pname, pipe_name); - strlower(pname); - slprintf(path, sizeof(path) - 1, "%s/.msrpc/%s", LOCKDIR, pname); - - fstrcpy(msrpc->pipe_name, pipe_name); - - msrpc->fd = open_pipe_sock(path); - - if (msrpc->fd == -1) - { - return False; - } - - return True; -} - /**************************************************************************** read an msrpc pdu from a fd. The timeout is in milliseconds. @@ -152,136 +129,6 @@ BOOL msrpc_receive(int fd, prs_struct *ps) return True; } -/**************************************************************************** -close the socket descriptor -****************************************************************************/ -static void ncalrpc_l_close_socket(struct msrpc_local *msrpc) -{ - if (msrpc->fd != -1) - { - close(msrpc->fd); - } - msrpc->fd = -1; -} - -static BOOL ncalrpc_l_authenticate(struct msrpc_local *msrpc) -{ - int sock = msrpc->fd; - uint32 len; - char *data; - prs_struct ps; - uint32 status; - - uint16 command; - - command = AGENT_CMD_CON; - - if (!create_user_creds(&ps, msrpc->pipe_name, 0x0, command, - msrpc->nt.key.pid, NULL)) - { - DEBUG(0, ("could not parse credentials\n")); - close(sock); - return False; - } - - len = ps.data_offset; - data = prs_data(&ps, 0); - - SIVAL(data, 0, len); - -#ifdef DEBUG_PASSWORD - DEBUG(100, ("data len: %d\n", len)); - dump_data(100, data, len); -#endif - - if (write_socket(sock, data, len) <= 0) - { - DEBUG(0, ("write failed\n")); - return False; - } - len = read_data(sock, (char*)&status, sizeof(status)); - - return len == sizeof(status) && status == 0x0; -} - - -/**************************************************************************** -shutdown a msrpcent structure -****************************************************************************/ -void ncalrpc_l_shutdown(struct msrpc_local *msrpc) -{ - DEBUG(10, ("msrpc_shutdown\n")); - if (msrpc->outbuf) - { - free(msrpc->outbuf); - } - if (msrpc->inbuf) - { - free(msrpc->inbuf); - } - ncalrpc_l_close_socket(msrpc); - memset(msrpc, 0, sizeof(*msrpc)); -} - -/**************************************************************************** -initialise a msrpcent structure -****************************************************************************/ -struct msrpc_local *ncalrpc_l_initialise(struct msrpc_local *msrpc, - const vuser_key * key) -{ - if (!msrpc) - { - msrpc = (struct msrpc_local *)malloc(sizeof(*msrpc)); - if (!msrpc) - return NULL; - ZERO_STRUCTP(msrpc); - } - - if (msrpc->initialised) - { - ncalrpc_l_shutdown(msrpc); - } - - ZERO_STRUCTP(msrpc); - - msrpc->fd = -1; - msrpc->outbuf = (char *)malloc(CLI_BUFFER_SIZE + 4); - msrpc->inbuf = (char *)malloc(CLI_BUFFER_SIZE + 4); - if (!msrpc->outbuf || !msrpc->inbuf) - { - return False; - } - - msrpc->initialised = 1; - - if (key != NULL) - { - msrpc->nt.key = *key; - } - else - { - NET_USER_INFO_3 usr; -#if 0 - uid_t uid = getuid(); - gid_t gid = getgid(); - char *name = uidtoname(uid); -#endif - - ZERO_STRUCT(usr); - - msrpc->nt.key.pid = sys_getpid(); - -#if 0 /* comment ou by JERRY */ - msrpc->nt.key.vuid = register_vuid(msrpc->nt.key.pid, - uid, gid, - name, name, False, &usr); -#endif /* comment ou by JERRY */ - } - - return msrpc; -} - - /**************************************************************************** open the msrpcent sockets ****************************************************************************/ @@ -554,48 +401,3 @@ BOOL msrpc_establish_connection(struct msrpc_state *msrpc, return True; } -/**************************************************************************** -establishes a connection right up to doing tconX, reading in a password. -****************************************************************************/ -BOOL ncalrpc_l_establish_connection(struct msrpc_local *msrpc, - const char *pipe_name) -{ - if (strnequal("\\PIPE\\", pipe_name, 6)) - { - pipe_name = &pipe_name[6]; - } - - DEBUG(5, ("ncalrpc_l_establish_connection: connecting to %s\n", - pipe_name)); - - /* establish connection */ - - if (!msrpc->initialised) - { - return False; - } - - if (msrpc->fd == -1) - { - if (!ncalrpc_l_connect(msrpc, pipe_name)) - { - DEBUG(1, - ("ncalrpc_l_establish_connection: failed %s)\n", - pipe_name)); - - return False; - } - } - - if (!ncalrpc_l_authenticate(msrpc)) - { - DEBUG(0, ("authenticate failed\n")); - close(msrpc->fd); - msrpc->fd = -1; - return False; - } - - return True; -} - - -- cgit