1
0
mirror of https://github.com/samba-team/samba.git synced 2025-10-22 07:33:16 +03:00

s3:libsmb: make sure we always set cli->capabilities at the end of cli_negprot_done()

If the server doesn't support PROTOCOL_NT1 we should reset the negotiated
capabilities to 0.

metze
This commit is contained in:
Stefan Metzmacher
2011-09-08 15:41:29 +02:00
parent 7982819f61
commit d87ef021ab

View File

@@ -2602,6 +2602,7 @@ static void cli_negprot_done(struct tevent_req *subreq)
NTSTATUS status;
uint16_t protnum;
uint8_t *inbuf;
uint32_t server_capabilities = 0;
status = cli_smb_recv(subreq, state, &inbuf, 1, &wct, &vwv,
&num_bytes, &bytes);
@@ -2652,13 +2653,13 @@ static void cli_negprot_done(struct tevent_req *subreq)
ts = interpret_long_date(((char *)(vwv+11))+1);
cli->servertime = ts.tv_sec;
cli->secblob = data_blob(bytes, num_bytes);
cli->capabilities = IVAL(vwv + 9, 1);
if (cli_state_capabilities(cli) & CAP_RAW_MODE) {
server_capabilities = IVAL(vwv + 9, 1);
if (server_capabilities & CAP_RAW_MODE) {
cli->readbraw_supported = True;
cli->writebraw_supported = True;
}
/* work out if they sent us a workgroup */
if (!(cli_state_capabilities(cli) & CAP_EXTENDED_SECURITY) &&
if (!(server_capabilities & CAP_EXTENDED_SECURITY) &&
smb_buflen(inbuf) > 8) {
ssize_t ret;
status = smb_bytes_talloc_string(
@@ -2738,6 +2739,8 @@ static void cli_negprot_done(struct tevent_req *subreq)
cli->max_xmit = MIN(cli->max_xmit, CLI_BUFFER_SIZE);
cli->capabilities = server_capabilities;
/* a way to force ascii SMB */
if (cli->force_ascii) {
cli->capabilities &= ~CAP_UNICODE;