summaryrefslogtreecommitdiffstats
path: root/src/plugins/kdb
diff options
context:
space:
mode:
authorKen Raeburn <raeburn@mit.edu>2008-07-22 19:34:24 +0000
committerKen Raeburn <raeburn@mit.edu>2008-07-22 19:34:24 +0000
commit4480e0df2a3d2fe2b63770e61d9cfd9fbe7d36fb (patch)
tree67146989d784ae02cfee1b3595b2a5c8a7366b62 /src/plugins/kdb
parentae629b14a7d2f1564d09f3ef49998ec7e35d2a27 (diff)
downloadkrb5-4480e0df2a3d2fe2b63770e61d9cfd9fbe7d36fb.tar.gz
krb5-4480e0df2a3d2fe2b63770e61d9cfd9fbe7d36fb.tar.xz
krb5-4480e0df2a3d2fe2b63770e61d9cfd9fbe7d36fb.zip
Catch a few more cases of unchecked k5_mutex_lock calls
ticket: 5962 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20567 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/plugins/kdb')
-rw-r--r--src/plugins/kdb/ldap/libkdb_ldap/kdb_ldap_conn.c4
-rw-r--r--src/plugins/kdb/ldap/libkdb_ldap/ldap_handle.c16
2 files changed, 13 insertions, 7 deletions
diff --git a/src/plugins/kdb/ldap/libkdb_ldap/kdb_ldap_conn.c b/src/plugins/kdb/ldap/libkdb_ldap/kdb_ldap_conn.c
index 8494681a1..08311e89b 100644
--- a/src/plugins/kdb/ldap/libkdb_ldap/kdb_ldap_conn.c
+++ b/src/plugins/kdb/ldap/libkdb_ldap/kdb_ldap_conn.c
@@ -203,7 +203,9 @@ krb5_ldap_db_init(krb5_context context, krb5_ldap_context *ldap_context)
ldap_set_option(NULL, LDAP_X_OPT_CONNECT_TIMEOUT, &local_timelimit);
#endif
- HNDL_LOCK(ldap_context);
+ st = HNDL_LOCK(ldap_context);
+ if (st)
+ return st;
while (ldap_context->server_info_list[cnt] != NULL) {
krb5_ldap_server_info *server_info=NULL;
diff --git a/src/plugins/kdb/ldap/libkdb_ldap/ldap_handle.c b/src/plugins/kdb/ldap/libkdb_ldap/ldap_handle.c
index 6f8e73d0e..dac02498d 100644
--- a/src/plugins/kdb/ldap/libkdb_ldap/ldap_handle.c
+++ b/src/plugins/kdb/ldap/libkdb_ldap/ldap_handle.c
@@ -223,7 +223,9 @@ krb5_ldap_request_handle_from_pool(ldap_context, ldap_server_handle)
*ldap_server_handle = NULL;
- HNDL_LOCK(ldap_context);
+ st = HNDL_LOCK(ldap_context);
+ if (st)
+ return st;
if (((*ldap_server_handle)=krb5_get_ldap_handle(ldap_context)) == NULL)
(*ldap_server_handle)=krb5_retry_get_ldap_handle(ldap_context, &st);
HNDL_UNLOCK(ldap_context);
@@ -242,7 +244,9 @@ krb5_ldap_request_next_handle_from_pool(ldap_context, ldap_server_handle)
{
krb5_error_code st=0;
- HNDL_LOCK(ldap_context);
+ st = HNDL_LOCK(ldap_context);
+ if (st)
+ return st;
(*ldap_server_handle)->server_info->server_status = OFF;
time(&(*ldap_server_handle)->server_info->downtime);
krb5_put_ldap_handle(*ldap_server_handle);
@@ -263,11 +267,11 @@ krb5_ldap_put_handle_to_pool(ldap_context, ldap_server_handle)
krb5_ldap_context *ldap_context;
krb5_ldap_server_handle *ldap_server_handle;
{
-
if (ldap_server_handle != NULL) {
- HNDL_LOCK(ldap_context);
- krb5_put_ldap_handle(ldap_server_handle);
- HNDL_UNLOCK(ldap_context);
+ if (HNDL_LOCK(ldap_context) == 0) {
+ krb5_put_ldap_handle(ldap_server_handle);
+ HNDL_UNLOCK(ldap_context);
+ }
}
return;
}