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

(ITS#4802) refint mutex bug

Full_Name: Hallvard B Furuseth
Version: HEAD
OS: Linux
Submission from: (NULL) (

overlays/refint.c:refint_close() does
	refint_data *id	= on->on_bi.bi_private;
	memset( id, 0, sizeof(*id));
which overwrites id->qmutex.  Then refint_db_destroy() does
	ldap_pvt_thread_mutex_destroy( &id->qmutex );
which can fail.

I don't know what the required lifetime for that mutex is -
if refint_close() must preserve it, or if it can destroy it
and set on->on_bi.bi_private = NULL (so refint_db_destroy
will do nothing), or something else.