diff options
author | Bill Ricker <bricker@apple.com> | 2008-04-07 15:02:56 -0700 |
---|---|---|
committer | James Peach <jpeach@samba.org> | 2008-04-07 15:05:51 -0700 |
commit | f700ee6418c7b861efdb0f8eaa61b99ad598b7c3 (patch) | |
tree | 78c875b50374d51bce2300b7f2c6a32c874623a0 /source3/smbd/seal.c | |
parent | 2dfec9e829e6e4c11ebde8c204e06b81cc596a29 (diff) | |
download | samba-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.c | 7 |
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 |