diff --git a/krb5-1.6.3-cc_gen_new-locks.patch b/krb5-1.6.3-cc_gen_new-locks.patch new file mode 100644 index 0000000..b1e18e6 --- /dev/null +++ b/krb5-1.6.3-cc_gen_new-locks.patch @@ -0,0 +1,25 @@ +We lock "krb5int_cc_file_mutex" before attempting to open the file in the +we-don't-have-mkstemp() case. And we shouldn't be trying to unlock it twice. +The function's rewritten in 1.6.4, but fix it here in the meantime. +--- krb5-1.6.3/src/lib/krb5/ccache/cc_file.c 2008-10-28 17:20:13.000000000 -0400 ++++ krb5-1.6.3/src/lib/krb5/ccache/cc_file.c 2008-10-28 17:20:07.000000000 -0400 +@@ -1976,8 +1976,9 @@ krb5_fcc_generate_new (krb5_context cont + mktemp(scratch); + /* Make sure the file name is reserved */ + ret = THREEPARAMOPEN(scratch, O_CREAT | O_EXCL | O_WRONLY | O_BINARY, 0); + if (ret == -1) { ++ k5_mutex_unlock(&krb5int_cc_file_mutex); + return krb5_fcc_interpret(context, errno); + } + #endif + +@@ -1995,9 +1996,8 @@ krb5_fcc_generate_new (krb5_context cont + k5_mutex_unlock(&krb5int_cc_file_mutex); + free(data); + close(ret); + unlink(scratch); +- k5_mutex_unlock(&krb5int_cc_file_mutex); + return KRB5_CC_NOMEM; + } + + kret = k5_mutex_init(&data->lock);