krb5 commit [krb5-1.14]: Use blocking lock when creating db2 KDB

Tom Yu tlyu at mit.edu
Wed Feb 24 15:25:11 EST 2016


https://github.com/krb5/krb5/commit/1d8a9dd3644a543cd2cacc90453f46fb4573fe59
commit 1d8a9dd3644a543cd2cacc90453f46fb4573fe59
Author: Greg Hudson <ghudson at mit.edu>
Date:   Tue Feb 23 17:15:18 2016 -0500

    Use blocking lock when creating db2 KDB
    
    In 1.11 we switched from non-blocking to blocking locks in the DB2
    module, but we missed one call to krb5_lock_file() in ctx_create_db().
    This non-blocking lock can cause krb5_db_promote() to fail if the
    database is locked when we try to promote the DB, in turn causing
    kdb5_util load to fail.  Correct this call to make krb5_db_promote()
    more robust.
    
    (cherry picked from commit 1868916dbb60a64b92da217257b4ed021262afd3)
    
    ticket: 8367
    version_fixed: 1.14.1

 src/plugins/kdb/db2/kdb_db2.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/src/plugins/kdb/db2/kdb_db2.c b/src/plugins/kdb/db2/kdb_db2.c
index 7bc760a..1b7bc16 100644
--- a/src/plugins/kdb/db2/kdb_db2.c
+++ b/src/plugins/kdb/db2/kdb_db2.c
@@ -701,8 +701,7 @@ ctx_create_db(krb5_context context, krb5_db2_context *dbc)
         retval = errno;
         goto cleanup;
     }
-    retval = krb5_lock_file(context, dbc->db_lf_file,
-                            KRB5_LOCKMODE_EXCLUSIVE | KRB5_LOCKMODE_DONTBLOCK);
+    retval = krb5_lock_file(context, dbc->db_lf_file, KRB5_LOCKMODE_EXCLUSIVE);
     if (retval != 0)
         goto cleanup;
     set_cloexec_fd(dbc->db_lf_file);


More information about the cvs-krb5 mailing list