[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#4917) at_insert() moves sat_ad_mutex

Full_Name: Hallvard B Furuseth
Version: HEAD
Submission from: (NULL) (
Submitted by: hallvard

slapd/at.c:at_insert() swaps the contents of the initialized
mutexes 'old_sat->sat_ad_mutex' and 'sat->sat_ad_mutex' in the
/* replacing a deleted definition? */ code.

I hope they are at least unlocked at the time...
Does ldap_pvt_thread_pool_pause() in config_back_add() & co block
the other threads?

If so, the simplest clean fix may be to destroy and reinitialize
the mutexes (instead of swapping them back), I think strictly
speaking behaviour is undefined if one copies mutexes around at
all.  Or since one will immediately be destroyed, maybe they should
be destroyed when SLAP_AT_DELETED is set, if it is not needed then.