diff options
author | Ken Raeburn <raeburn@mit.edu> | 2008-02-15 02:50:17 +0000 |
---|---|---|
committer | Ken Raeburn <raeburn@mit.edu> | 2008-02-15 02:50:17 +0000 |
commit | f47aecbfd680f90b21d6749e93ca15f12bbca139 (patch) | |
tree | 86d110f13542ad416d6a214469a1bb60740d524a | |
parent | a734eeec9b92975366c2d05d68ec362bbe407021 (diff) | |
download | krb5-f47aecbfd680f90b21d6749e93ca15f12bbca139.zip krb5-f47aecbfd680f90b21d6749e93ca15f12bbca139.tar.gz krb5-f47aecbfd680f90b21d6749e93ca15f12bbca139.tar.bz2 |
Fix from Savitha R, 2008-01-31 for bug:
KDC crash due to assertion failure when a thread reacquires the kdc lock
after waiting on a condition (while a similar request is getting processed )
and tries to unlock the kdc later. The assertion was failing due to mismatch
of lock owner.
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/mt-kdc@20225 dc483132-0cff-0310-8789-dd5450dbe970
-rw-r--r-- | src/kdc/extern.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/kdc/extern.c b/src/kdc/extern.c index 3ec6a05..8520cf7 100644 --- a/src/kdc/extern.c +++ b/src/kdc/extern.c @@ -49,6 +49,11 @@ k5_mutex_t kdc_lock; inline void sleep_kdc(pthread_cond_t *cond) { pthread_cond_wait(cond, &kdc_lock.os.p); + /* This is a temporary fix. It has to be handled appropriately + while writing the shim layer for condition variables */ +#ifdef DEBUG_THREADS + kdc_lock.os.owner = pthread_self(); +#endif } inline void wakeup_kdc(pthread_cond_t *cond) |