Fixed slapd memory leaks (ITS#249 ITS#250)
Fixed test005-modrdn to properly report failure in delete rdn case
Fixed ldapsearch (%s) bug (ITS#274)
+ Fixed slapd (cn=*=+=*) regex bug (ITS#272)
Build environment
Disable config.cache to ensure consistent detection
Documentation
case '[':
case ']':
case '*':
- case '+':
case '^':
case '$':
*d++ = '\\';
/* compile the regex */
Debug( LDAP_DEBUG_FILTER, "test_substring_filter: regcomp pat: %s\n",
pat, 0, 0 );
- if ((rc = regcomp(&re, pat, 0))) {
+ if ((rc = regcomp(&re, pat, REG_NOSUB))) {
char error[512];
regerror(rc, &re, error, sizeof(error));
if ( rc == -1 ) {
Debug( LDAP_DEBUG_ANY, "ber_printf failed\n", 0, 0, 0 );
+ ber_free( ber, 1 );
return;
}
bytes = ber->ber_ptr - ber->ber_buf;
ldap_pvt_thread_mutex_lock( &new_conn_mutex );
while ( conn->c_connid == op->o_connid && ber_flush( &conn->c_sb, ber,
- 1 ) != 0 ) {
+ 0 ) != 0 ) {
ldap_pvt_thread_mutex_unlock( &new_conn_mutex );
/*
* we got an error. if it's ewouldblock, we need to
close_connection( conn, op->o_connid, op->o_opid );
ldap_pvt_thread_mutex_unlock( &conn->c_pdumutex );
+ ber_free( ber, 1 );
return;
}
ldap_pvt_thread_mutex_unlock( &new_conn_mutex );
ldap_pvt_thread_mutex_unlock( &conn->c_pdumutex );
+ ber_free( ber, 1 );
+
ldap_pvt_thread_mutex_lock( &num_sent_mutex );
num_bytes_sent += bytes;
ldap_pvt_thread_mutex_unlock( &num_sent_mutex );
bytes = ber->ber_ptr - ber->ber_buf;
ldap_pvt_thread_mutex_lock( &new_conn_mutex );
while ( conn->c_connid == op->o_connid && ber_flush( &conn->c_sb, ber,
- 1 ) != 0 ) {
+ 0 ) != 0 ) {
ldap_pvt_thread_mutex_unlock( &new_conn_mutex );
/*
* we got an error. if it's ewouldblock, we need to
close_connection( conn, op->o_connid, op->o_opid );
ldap_pvt_thread_mutex_unlock( &conn->c_pdumutex );
+ ber_free( ber, 1 );
return( -1 );
}
ldap_pvt_thread_mutex_unlock( &new_conn_mutex );
ldap_pvt_thread_mutex_unlock( &conn->c_pdumutex );
+ ber_free( ber, 1 );
+
ldap_pvt_thread_mutex_lock( &num_sent_mutex );
num_bytes_sent += bytes;
num_entries_sent++;