https://bugs.openldap.org/show_bug.cgi?id=9283
--- Comment #3 from Howard Chu hyc@openldap.org --- (In reply to Konstantin Andreev from comment #2)
(In reply to Howard Chu from comment #1)
When init'ng a private backend, the caller is responsible for cleanup. See for example | translucent_db_destroy( BackendDB *be, ConfigReply *cr ) | { | ... | ldap_pvt_thread_mutex_destroy( &ov->db.be_pcl_mutex );
Other callers disagree. There are no destroy complements for this:
| bconfig.c`config_setup_ldif( ... ) { | ... | if ( backend_db_init( "ldif", &cfb->cb_db, -1, NULL ) == NULL ) | return 1;
The config backend cannot be destroyed without shutting down slapd, therefore any potential leaks are irrelevant.
and this
| overlays/pcache.c`pc_cf_gen( ... ) { | ... | if ( !backend_db_init( c->argv[1], &cm->db, -1, NULL )) { | // error report | return( 1 );
whatever it could mean.
Patches welcome.