]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#10308 Fix asyncmeta monitor deregistration
authorOndřej Kuzník <ondra@mistotebe.net>
Tue, 24 Mar 2026 15:21:35 +0000 (15:21 +0000)
committerQuanah Gibson-Mount <quanah@openldap.org>
Fri, 10 Apr 2026 03:15:42 +0000 (03:15 +0000)
servers/slapd/back-asyncmeta/monitor.c

index 9ad9f0fd1b981c12b2aefd28219b268117f27564..ce59af02d183cf66409af9612e0febd77f1190de 100644 (file)
@@ -349,6 +349,7 @@ asyncmeta_back_monitor_subsystem_destroy(
        free(ms->mss_ndn.bv_val);
        BER_BVZERO(&ms->mss_ndn);
 
+       ch_free( ms );
        return LDAP_SUCCESS;
 }
 
@@ -695,7 +696,6 @@ asyncmeta_back_monitor_conn_init(
        mbe = (monitor_extra_t *) be->bd_info->bi_extra;
 
        ms->mss_dn = ms->mss_ndn = mi->mi_monitor_info.mi_ndn;
-       ms->mss_destroy = asyncmeta_back_monitor_subsystem_destroy;
 
        parent = mbe->entry_stub( &ms->mss_dn, &ms->mss_ndn,
                &mi->mi_monitor_info.mi_conn_rdn, oc_monitorContainer, NULL, NULL );
@@ -870,7 +870,6 @@ asyncmeta_back_monitor_targets_init(
        mbe = (monitor_extra_t *) be->bd_info->bi_extra;
 
        ms->mss_dn = ms->mss_ndn = mi->mi_monitor_info.mi_ndn;
-       ms->mss_destroy = asyncmeta_back_monitor_subsystem_destroy;
 
        parent = mbe->entry_stub( &ms->mss_dn, &ms->mss_ndn,
                &mi->mi_monitor_info.mi_targets_rdn, oc_monitorContainer, NULL, NULL );
@@ -1205,6 +1204,7 @@ asyncmeta_back_monitor_db_open( BackendDB *be )
        mss->mss_name = "back-asyncmeta connections";
        mss->mss_flags = MONITOR_F_PERSISTENT_CH;
        mss->mss_open = asyncmeta_back_monitor_conn_init;
+       mss->mss_destroy = asyncmeta_back_monitor_subsystem_destroy;
        mss->mss_private = mi;
 
        if ( mbe->register_subsys_late( mss ) )
@@ -1220,6 +1220,7 @@ asyncmeta_back_monitor_db_open( BackendDB *be )
        mss->mss_name = "back-asyncmeta targets";
        mss->mss_flags = MONITOR_F_PERSISTENT_CH;
        mss->mss_open = asyncmeta_back_monitor_targets_init;
+       mss->mss_destroy = asyncmeta_back_monitor_subsystem_destroy;
        mss->mss_private = mi;
 
        if ( mbe->register_subsys_late( mss ) )