diff --git a/libraries/libldap/unbind.c b/libraries/libldap/unbind.c index 9de2a1d801..8966df8a49 100644 --- a/libraries/libldap/unbind.c +++ b/libraries/libldap/unbind.c @@ -144,6 +144,13 @@ ldap_ld_free( ld->ld_options.ldo_defludp = NULL; } +#ifdef LDAP_CONNECTIONLESS + if ( ld->ld_options.ldo_peer != NULL ) { + LDAP_FREE( ld->ld_options.ldo_peer ); + ld->ld_options.ldo_peer = NULL; + } +#endif + if ( ld->ld_options.ldo_tm_api != NULL ) { LDAP_FREE( ld->ld_options.ldo_tm_api ); ld->ld_options.ldo_tm_api = NULL; @@ -176,6 +183,16 @@ ldap_ld_free( } #endif + if ( ld->ld_options.ldo_sctrls != NULL ) { + ldap_controls_free( ld->ld_options.ldo_sctrls ); + ld->ld_options.ldo_sctrls = NULL; + } + + if ( ld->ld_options.ldo_cctrls != NULL ) { + ldap_controls_free( ld->ld_options.ldo_cctrls ); + ld->ld_options.ldo_cctrls = NULL; + } + ber_sockbuf_free( ld->ld_sb ); #ifdef LDAP_R_COMPILE