diff options
author | Stefan Metzmacher <metze@samba.org> | 2007-07-31 12:32:01 +0000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2007-07-31 12:32:01 +0000 |
commit | 770a70df6c75bd029eb7215e56c758a0a93eb8df (patch) | |
tree | d35bdccfc5419e170eeb2d7d3a9011e3bf6f94a4 /source/libads/sasl.c | |
parent | 06a3f5ac9d496ae29348c3bc7ef922ef15a3c96f (diff) | |
download | samba-770a70df6c75bd029eb7215e56c758a0a93eb8df.tar.gz samba-770a70df6c75bd029eb7215e56c758a0a93eb8df.tar.xz samba-770a70df6c75bd029eb7215e56c758a0a93eb8df.zip |
r24105: merge from SAMBA_3_2:
add some useful debug messages, as not all LDAP
libraries support wrapping hooks...
metze
Diffstat (limited to 'source/libads/sasl.c')
-rw-r--r-- | source/libads/sasl.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/source/libads/sasl.c b/source/libads/sasl.c index 0bc741c02a4..5c4006e7697 100644 --- a/source/libads/sasl.c +++ b/source/libads/sasl.c @@ -126,6 +126,7 @@ static ADS_STATUS ads_sasl_spnego_ntlmssp_bind(ADS_STRUCT *ads) struct berval cred, *scred = NULL; int rc; NTSTATUS nt_status; + ADS_STATUS status; int turn = 1; uint32 features = 0; @@ -251,7 +252,13 @@ static ADS_STATUS ads_sasl_spnego_ntlmssp_bind(ADS_STRUCT *ads) ads->ldap.out.sig_size = NTLMSSP_SIG_SIZE; ads->ldap.in.min = 4; ads->ldap.in.max = 0x0FFFFFFF; - ads_setup_sasl_wrapping(ads, &ads_sasl_ntlmssp_ops, ntlmssp_state); + status = ads_setup_sasl_wrapping(ads, &ads_sasl_ntlmssp_ops, ntlmssp_state); + if (!ADS_ERR_OK(status)) { + DEBUG(0, ("ads_setup_sasl_wrapping() failed: %s\n", + ads_errstr(status))); + ntlmssp_end(&ntlmssp_state); + return status; + } } else { ntlmssp_end(&ntlmssp_state); } @@ -582,7 +589,12 @@ static ADS_STATUS ads_sasl_spnego_gsskrb5_bind(ADS_STRUCT *ads, const gss_name_t ads->ldap.out.sig_size = max_msg_size - ads->ldap.out.max; ads->ldap.in.min = 4; ads->ldap.in.max = max_msg_size; - ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle); + status = ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle); + if (!ADS_ERR_OK(status)) { + DEBUG(0, ("ads_setup_sasl_wrapping() failed: %s\n", + ads_errstr(status))); + goto failed; + } /* make sure we don't free context_handle */ context_handle = GSS_C_NO_CONTEXT; } @@ -1059,7 +1071,12 @@ static ADS_STATUS ads_sasl_gssapi_do_bind(ADS_STRUCT *ads, const gss_name_t serv ads->ldap.out.sig_size = max_msg_size - ads->ldap.out.max; ads->ldap.in.min = 4; ads->ldap.in.max = max_msg_size; - ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle); + status = ads_setup_sasl_wrapping(ads, &ads_sasl_gssapi_ops, context_handle); + if (!ADS_ERR_OK(status)) { + DEBUG(0, ("ads_setup_sasl_wrapping() failed: %s\n", + ads_errstr(status))); + goto failed; + } /* make sure we don't free context_handle */ context_handle = GSS_C_NO_CONTEXT; } |