diff options
-rw-r--r-- | source3/libsmb/pwd_cache.c | 10 | ||||
-rw-r--r-- | source3/rpc_client/cli_connect.c | 4 | ||||
-rw-r--r-- | source3/rpcclient/rpcclient.c | 31 |
3 files changed, 27 insertions, 18 deletions
diff --git a/source3/libsmb/pwd_cache.c b/source3/libsmb/pwd_cache.c index 9680349a86..548777d434 100644 --- a/source3/libsmb/pwd_cache.c +++ b/source3/libsmb/pwd_cache.c @@ -85,16 +85,8 @@ BOOL pwd_compare(struct pwd_info *pwd1, struct pwd_info *pwd2) pwd_obfuscate(pwd2); return True; } - if (pwd1->crypted || pwd2->crypted) - { - DEBUG(5,("pwd_compare: cannot compare crypted passwords\n")); - pwd_obfuscate(pwd1); - pwd_obfuscate(pwd2); - return False; - } - if (!pwd1->crypted && !pwd2->crypted && - !pwd1->null_pwd && !pwd2->null_pwd && + if (!pwd1->null_pwd && !pwd2->null_pwd && !pwd1->cleartext && !pwd2->cleartext) { if (memcmp(pwd1->smb_nt_pwd, pwd2->smb_nt_pwd, 16) == 0) diff --git a/source3/rpc_client/cli_connect.c b/source3/rpc_client/cli_connect.c index d9ae71e6c9..6faf7cc28b 100644 --- a/source3/rpc_client/cli_connect.c +++ b/source3/rpc_client/cli_connect.c @@ -159,7 +159,9 @@ void cli_connection_free(struct cli_connection *con) { for (i = 0; i < num_cons; i++) { - if (con != con_list[i] && con_list[i]->cli == con->cli) + if (con_list[i] != NULL && + con != con_list[i] && + con_list[i]->cli == con->cli) { /* WHOOPS! fnum already open: too bad!!! */ con_list[i]->cli = NULL; diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c index dfbd3fae7a..2339cc892b 100644 --- a/source3/rpcclient/rpcclient.c +++ b/source3/rpcclient/rpcclient.c @@ -755,14 +755,32 @@ static BOOL process( struct client_info *info, char *cmd_str) } else while (!feof(stdin)) { -#ifdef HAVE_LIBREADLINE - pstring promptline; -#endif + pstring pline; + BOOL at_sym = False; + pline[0] = 0; + if (usr.domain[0] != 0) + { + safe_strcat(pline, usr.domain, sizeof(pline)-1); + safe_strcat(pline, "\\", sizeof(pline)-1); + at_sym = True; + } + if (usr.user_name[0] != 0) + { + safe_strcat(pline, usr.user_name, sizeof(pline)-1); + at_sym = True; + } + if (at_sym) + { + safe_strcat(pline, "@", sizeof(pline)-1); + } + + safe_strcat(pline, cli_info.dest_host, sizeof(pline)-1); + safe_strcat(pline, "$ ", sizeof(pline)-1); #ifndef HAVE_LIBREADLINE /* display a prompt */ - fprintf(out_hnd, "%s$ ", CNV_LANG(cli_info.dest_host)); + fprintf(out_hnd, "%s", CNV_LANG(promptline)); fflush(out_hnd); cli_net_wait_keyboard(); @@ -775,10 +793,7 @@ static BOOL process( struct client_info *info, char *cmd_str) #else /* HAVE_LIBREADLINE */ - slprintf(promptline, sizeof(promptline) - 1, "%s$ ", - CNV_LANG(cli_info.dest_host)); - - if (!readline(promptline)) + if (!readline(pline)) break; /* Copy read line to samba buffer */ |