1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-24 21:34:56 +03:00

r10974: Get closer to trying to fix #1825 (PcoketPC spnego bug). Ensure we

set keylen to zero if no spnego.
Jeremy.
(This used to be commit 57ed94e6e4)
This commit is contained in:
Jeremy Allison 2005-10-13 19:45:24 +00:00 committed by Gerald (Jerry) Carter
parent b82981bbc8
commit 97a321e557

View File

@ -167,7 +167,7 @@ static int reply_lanman2(char *inbuf, char *outbuf)
Generate the spnego negprot reply blob. Return the number of bytes used.
****************************************************************************/
static int negprot_spnego(char *p)
static int negprot_spnego(char *p, uint8 *pkeylen)
{
DATA_BLOB blob;
nstring dos_name;
@ -212,6 +212,7 @@ static int negprot_spnego(char *p)
if (lp_security() != SEC_ADS && !lp_use_kerberos_keytab()) {
memcpy(p, guid, 16);
*pkeylen = 0;
return 16;
} else {
fstring myname;
@ -224,6 +225,11 @@ static int negprot_spnego(char *p)
}
memcpy(p, blob.data, blob.length);
len = blob.length;
if (len > 256) {
DEBUG(0,("negprot_spnego: blob length too long (%d)\n", len));
len = 255;
}
*pkeylen = len;
data_blob_free(&blob);
return len;
}
@ -324,16 +330,17 @@ static int reply_nt1(char *inbuf, char *outbuf)
/* note that we do not send a challenge at all if
we are using plaintext */
get_challenge(p);
SSVALS(outbuf,smb_vwv16+1,8);
SCVAL(outbuf,smb_vwv16+1,8);
p += 8;
}
p += srvstr_push(outbuf, p, lp_workgroup(), -1,
STR_UNICODE|STR_TERMINATE|STR_NOALIGN);
DEBUG(3,("not using SPNEGO\n"));
} else {
int len = negprot_spnego(p);
uint8 keylen;
int len = negprot_spnego(p, &keylen);
SSVALS(outbuf,smb_vwv16+1,len);
SCVAL(outbuf,smb_vwv16+1,keylen);
p += len;
DEBUG(3,("using SPNEGO\n"));
}