diff options
author | Tom Yu <tlyu@mit.edu> | 2013-10-10 13:59:27 -0400 |
---|---|---|
committer | Tom Yu <tlyu@mit.edu> | 2013-10-10 19:11:27 -0400 |
commit | 047afa2244c33ef54805ebf0436db42c12e83332 (patch) | |
tree | 028eb5db4f6868aac80c43ae853ecc9cdb9b3f10 | |
parent | c5a0602e889bb17e85b7201d9e69d41ff5d9f315 (diff) | |
download | krb5-047afa2244c33ef54805ebf0436db42c12e83332.zip krb5-047afa2244c33ef54805ebf0436db42c12e83332.tar.gz krb5-047afa2244c33ef54805ebf0436db42c12e83332.tar.bz2 |
Fix KDC lock persistence on error conditions
If k5db2_dbopen() returns an error, krb5_db2_lock() can return an
error without unlocking the lock file. This lock will persist until
krb5_db2_lock() executes successfully, preventing kadmind from making
changes to the KDB. One possible trigger is running out of file
descriptors.
ticket: 7717 (new)
version_fixed: 1.9.6
-rw-r--r-- | src/plugins/kdb/db2/kdb_db2.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/plugins/kdb/db2/kdb_db2.c b/src/plugins/kdb/db2/kdb_db2.c index 210afff..73ee803 100644 --- a/src/plugins/kdb/db2/kdb_db2.c +++ b/src/plugins/kdb/db2/kdb_db2.c @@ -611,7 +611,7 @@ policy_lock: lock_error:; db_ctx->db_lock_mode = 0; db_ctx->db_locks_held = 0; - krb5_db2_unlock(context); + krb5_lock_file(context, db_ctx->db_lf_file, KRB5_LOCKMODE_UNLOCK); return retval; } |