summaryrefslogtreecommitdiff
path: root/source3/smbd/seal.c
diff options
context:
space:
mode:
authorBill Ricker <bricker@apple.com>2008-04-07 15:02:56 -0700
committerJames Peach <jpeach@samba.org>2008-04-07 15:05:51 -0700
commitf700ee6418c7b861efdb0f8eaa61b99ad598b7c3 (patch)
tree78c875b50374d51bce2300b7f2c6a32c874623a0 /source3/smbd/seal.c
parent2dfec9e829e6e4c11ebde8c204e06b81cc596a29 (diff)
downloadsamba-f700ee6418c7b861efdb0f8eaa61b99ad598b7c3.tar.gz
samba-f700ee6418c7b861efdb0f8eaa61b99ad598b7c3.tar.bz2
samba-f700ee6418c7b861efdb0f8eaa61b99ad598b7c3.zip
Fix Kerberos interop with Mac OS X 10.5 clients.
Ignore optional req_flags. Use the Kerberos mechanism OID negotiated with the client rather than hardcoding OID_KERBEROS5_OLD. (This used to be commit 59a2bcf30fef14ecc826271862b645dd3a61cb48)
Diffstat (limited to 'source3/smbd/seal.c')
-rw-r--r--source3/smbd/seal.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/source3/smbd/seal.c b/source3/smbd/seal.c
index d4394e5bca..955ca471bc 100644
--- a/source3/smbd/seal.c
+++ b/source3/smbd/seal.c
@@ -484,10 +484,11 @@ static NTSTATUS srv_enc_spnego_negotiate(connection_struct *conn,
DATA_BLOB blob = data_blob_null;
DATA_BLOB secblob = data_blob_null;
bool got_kerberos_mechanism = false;
+ char *kerb_mech = NULL;
blob = data_blob_const(*ppdata, *p_data_size);
- status = parse_spnego_mechanisms(blob, &secblob, &got_kerberos_mechanism);
+ status = parse_spnego_mechanisms(blob, &secblob, &kerb_mech);
if (!NT_STATUS_IS_OK(status)) {
return nt_status_squash(status);
}
@@ -496,7 +497,9 @@ static NTSTATUS srv_enc_spnego_negotiate(connection_struct *conn,
srv_free_encryption_context(&partial_srv_trans_enc_ctx);
- if (got_kerberos_mechanism) {
+ if (kerb_mech) {
+ SAFE_FREE(kerb_mech);
+
#if defined(HAVE_GSSAPI) && defined(HAVE_KRB5)
status = srv_enc_spnego_gss_negotiate(ppdata, p_data_size, secblob);
#else