diff options
author | Andrew Tridgell <tridge@samba.org> | 2001-12-21 12:29:51 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2001-12-21 12:29:51 +0000 |
commit | caaac2803a52969312a633c2f6e0c446a944dffe (patch) | |
tree | a6d9f834dd65e0949ffa76ef1a2eb880f3d9e974 /source3/libsmb | |
parent | 384ce26f5bdf27aadaea967b17ee6ca8549aca5a (diff) | |
download | samba-caaac2803a52969312a633c2f6e0c446a944dffe.tar.gz samba-caaac2803a52969312a633c2f6e0c446a944dffe.tar.bz2 samba-caaac2803a52969312a633c2f6e0c446a944dffe.zip |
- handle kerberos session setup reply with broken null termination
- don't display Domain=[] for auth protocols that don't give us a domain
(This used to be commit 20368455ea59e6e9b85632848bbe92069e7b0f38)
Diffstat (limited to 'source3/libsmb')
-rw-r--r-- | source3/libsmb/cliconnect.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c index d636e7e839..75560da676 100644 --- a/source3/libsmb/cliconnect.c +++ b/source3/libsmb/cliconnect.c @@ -325,6 +325,7 @@ static DATA_BLOB cli_session_setup_blob(struct cli_state *cli, DATA_BLOB blob) uint32 capabilities = cli_session_setup_capabilities(cli); char *p; DATA_BLOB blob2; + uint32 len; blob2 = data_blob(NULL, 0); @@ -371,10 +372,10 @@ static DATA_BLOB cli_session_setup_blob(struct cli_state *cli, DATA_BLOB blob) p += blob2.length; p += clistr_pull(cli, cli->server_os, p, sizeof(fstring), -1, STR_TERMINATE); - p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), -1, STR_TERMINATE); - p += clistr_pull(cli, cli->server_domain, p, sizeof(fstring), - smb_buflen(cli->inbuf) - PTR_DIFF(p, smb_buf(cli->inbuf)), - 0); + + /* w2k with kerberos doesn't properly null terminate this field */ + len = smb_buflen(cli->inbuf) - PTR_DIFF(p, smb_buf(cli->inbuf)); + p += clistr_pull(cli, cli->server_type, p, sizeof(fstring), len, 0); return blob2; } |