diff --git a/clients/tools/common.c b/clients/tools/common.c index d39b3d9bd8..526358d8f6 100644 --- a/clients/tools/common.c +++ b/clients/tools/common.c @@ -670,6 +670,7 @@ tool_bind( LDAP *ld ) sasl_mech, NULL, NULL, sasl_flags, lutil_sasl_interact, defaults ); + lutil_sasl_freedefs( defaults ); if( rc != LDAP_SUCCESS ) { ldap_perror( ld, "ldap_sasl_interactive_bind_s" ); exit( EXIT_FAILURE ); diff --git a/clients/tools/ldapsearch.c b/clients/tools/ldapsearch.c index 67beac471e..83cae190b6 100644 --- a/clients/tools/ldapsearch.c +++ b/clients/tools/ldapsearch.c @@ -915,6 +915,8 @@ getNextPage: #endif ldap_unbind( ld ); + sasl_done(); + ldap_pvt_tls_destroy(); return( rc ); } @@ -1120,6 +1122,7 @@ static int dosearch( } done: + ldap_msgfree( res ); #ifdef LDAP_CONTROL_PAGEDRESULTS if ( pageSize != 0 ) { npagedresponses = npagedresponses + nresponses; @@ -1521,24 +1524,28 @@ static int print_result( fprintf( stderr, "%s (%d)\n", ldap_err2string(err), err ); } - if( matcheddn && *matcheddn ) { + if( matcheddn ) { + if( *matcheddn ) { if( !ldif ) { write_ldif( LDIF_PUT_VALUE, "matchedDN", matcheddn, strlen(matcheddn) ); } else { fprintf( stderr, "Matched DN: %s\n", matcheddn ); } + } ber_memfree( matcheddn ); } - if( text && *text ) { + if( text ) { + if( *text ) { if( !ldif ) { write_ldif( LDIF_PUT_TEXT, "text", text, strlen(text) ); } else { fprintf( stderr, "Additional information: %s\n", text ); } + } ber_memfree( text ); }