- krb5_fcc_generate_new(): unlock the fcc list lock before returning in the
non-mkstemp() case, don't unlock the lock twice before returning if we happen to run out of memory (fixed in trunk by rewriting the function)
This commit is contained in:
parent
0d57fe8b86
commit
6df4ee1a7a
25
krb5-1.6.3-cc_gen_new-locks.patch
Normal file
25
krb5-1.6.3-cc_gen_new-locks.patch
Normal file
@ -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);
|
Loading…
Reference in New Issue
Block a user