diff options
author | Jeremy Allison <jra@samba.org> | 2009-10-22 15:06:38 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-10-22 15:06:38 -0700 |
commit | 843adc1981d0ad380d207bdc014209aa8dd73344 (patch) | |
tree | 07a79f9d548f5b338aa2181997bd46834fd5bf02 /source3/libsmb/clidfs.c | |
parent | 5c6944d33f7d4b3ec74d8ab29d344cd33583ede9 (diff) | |
download | samba-843adc1981d0ad380d207bdc014209aa8dd73344.tar.gz samba-843adc1981d0ad380d207bdc014209aa8dd73344.tar.xz samba-843adc1981d0ad380d207bdc014209aa8dd73344.zip |
Fix bug 6829 - smbclient does not show special characters properly.
All successful calls to cli_session_setup() *must* be followed by
calls to cli_init_creds() to stash the credentials we successfully
connected with. There were 2 codepaths where this was missing. This
caused smbclient to be unable to open the \srvsvc pipe to do an RPC
netserverenum, and cause it to fall back to a RAP netserverenum,
which uses DOS codepage conversion rather than the full UCS2 of
RPC, so the returned characters were not correct (unless the DOS
codepage was set correctly). Phew. That was fun to track down :-).
Jeremy.
Diffstat (limited to 'source3/libsmb/clidfs.c')
-rw-r--r-- | source3/libsmb/clidfs.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source3/libsmb/clidfs.c b/source3/libsmb/clidfs.c index 5e944f1aaad..53dc6d79844 100644 --- a/source3/libsmb/clidfs.c +++ b/source3/libsmb/clidfs.c @@ -216,6 +216,15 @@ static struct cli_state *do_connect(TALLOC_CTX *ctx, return NULL; } d_printf("Anonymous login successful\n"); + status = cli_init_creds(c, "", lp_workgroup(), ""); + } else { + status = cli_init_creds(c, username, lp_workgroup(), password); + } + + if (!NT_STATUS_IS_OK(status)) { + DEBUG(10,("cli_init_creds() failed: %s\n", nt_errstr(status))); + cli_shutdown(c); + return NULL; } if ( show_sessetup ) { |