mirror of
https://github.com/isc-projects/bind9.git
synced 2026-03-13 06:02:37 -04:00
1833. [bug] Race condition in isc_mutex_lock_profile(). [RT #13660]
This commit is contained in:
parent
37bb8e226a
commit
72386ff95e
2 changed files with 16 additions and 14 deletions
2
CHANGES
2
CHANGES
|
|
@ -1,3 +1,5 @@
|
|||
1833. [bug] Race condition in isc_mutex_lock_profile(). [RT #13660]
|
||||
|
||||
1832. [bug] named fails to return BADKEY on unknown TSIG algorithm.
|
||||
[RT #13620]
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: mutex.c,v 1.6.26.3 2004/03/08 09:04:55 marka Exp $ */
|
||||
/* $Id: mutex.c,v 1.6.26.4 2005/03/16 01:56:42 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
|
@ -126,19 +126,6 @@ isc_mutex_lock_profile(isc_mutex_t *mp, const char *file, int line) {
|
|||
isc_mutexlocker_t *locker = NULL;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < ISC_MUTEX_MAX_LOCKERS; i++) {
|
||||
if (mp->stats->lockers[i].file == NULL) {
|
||||
locker = &mp->stats->lockers[i];
|
||||
locker->file = file;
|
||||
locker->line = line;
|
||||
break;
|
||||
} else if (mp->stats->lockers[i].file == file &&
|
||||
mp->stats->lockers[i].line == line) {
|
||||
locker = &mp->stats->lockers[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday(&prelock_t, NULL);
|
||||
|
||||
if (pthread_mutex_lock(&mp->mutex) != 0)
|
||||
|
|
@ -152,6 +139,19 @@ isc_mutex_lock_profile(isc_mutex_t *mp, const char *file, int line) {
|
|||
mp->stats->count++;
|
||||
timevaladd(&mp->stats->wait_total, &postlock_t);
|
||||
|
||||
for (i = 0; i < ISC_MUTEX_MAX_LOCKERS; i++) {
|
||||
if (mp->stats->lockers[i].file == NULL) {
|
||||
locker = &mp->stats->lockers[i];
|
||||
locker->file = file;
|
||||
locker->line = line;
|
||||
break;
|
||||
} else if (mp->stats->lockers[i].file == file &&
|
||||
mp->stats->lockers[i].line == line) {
|
||||
locker = &mp->stats->lockers[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (locker != NULL) {
|
||||
locker->count++;
|
||||
timevaladd(&locker->wait_total, &postlock_t);
|
||||
|
|
|
|||
Loading…
Reference in a new issue