diff options
author | Ken Raeburn <raeburn@mit.edu> | 2008-07-22 19:34:24 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2008-07-22 19:34:24 +0000 |
commit | 4480e0df2a3d2fe2b63770e61d9cfd9fbe7d36fb (patch) | |
tree | 67146989d784ae02cfee1b3595b2a5c8a7366b62 /src/plugins/kdb | |
parent | ae629b14a7d2f1564d09f3ef49998ec7e35d2a27 (diff) | |
download | krb5-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.c | 4 | ||||
-rw-r--r-- | src/plugins/kdb/ldap/libkdb_ldap/ldap_handle.c | 16 |
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; } |