Skip to content
Snippets Groups Projects
Commit 4bb44991 authored by Hallvard Furuseth's avatar Hallvard Furuseth
Browse files

Plug some memory leaks

parent 0aafb726
No related branches found
No related tags found
No related merge requests found
......@@ -71,6 +71,7 @@ do_add( Connection *conn, Operation *op )
if ( ber_scanf( ber, "{a{V}}", &type, &vals ) == LBER_ERROR ) {
send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR,
NULL, "decoding error" );
free( dn );
entry_free( e );
return;
}
......@@ -80,6 +81,8 @@ do_add( Connection *conn, Operation *op )
0, 0 );
send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR, NULL,
NULL );
free( type );
free( dn );
entry_free( e );
return;
}
......@@ -98,7 +101,9 @@ do_add( Connection *conn, Operation *op )
* appropriate one, or send a referral to our "referral server"
* if we don't hold it.
*/
if ( (be = select_backend( dn )) == NULL ) {
be = select_backend( dn );
free( dn );
if ( be == NULL ) {
entry_free( e );
send_ldap_result( conn, op, LDAP_PARTIAL_RESULTS, NULL,
default_referral );
......
......@@ -67,6 +67,7 @@ ldbm_back_delete(
/* XXX delete from parent's id2children entry XXX */
pdn = dn_parent( be, dn );
p = dn2entry_r( be, pdn, &matched );
free( pdn );
if ( id2children_remove( be, p, e ) != 0 ) {
send_ldap_result( conn, op, LDAP_OPERATIONS_ERROR, "","" );
goto error_return;
......
......@@ -30,7 +30,7 @@ filter_candidates(
Filter *f
)
{
IDList *result;
IDList *result, *tmp1, *tmp2;
Debug( LDAP_DEBUG_TRACE, "=> filter_candidates\n", 0, 0, 0 );
......@@ -78,8 +78,11 @@ filter_candidates(
case LDAP_FILTER_NOT:
Debug( LDAP_DEBUG_FILTER, "\tNOT\n", 0, 0, 0 );
result = idl_notin( be, idl_allids( be ), filter_candidates( be,
f->f_not ) );
tmp1 = idl_allids( be );
tmp2 = filter_candidates( be, f->f_not );
result = idl_notin( be, tmp1, tmp2 );
idl_free( tmp2 );
idl_free( tmp1 );
break;
}
......
......@@ -47,8 +47,6 @@ str2entry( char *s )
s ? s : "NULL", 0, 0 );
e = (Entry *) ch_calloc( 1, sizeof(Entry) );
/* initialize reader/writer lock */
entry_rdwr_init(e);
/* check to see if there's an id included */
next = s;
......@@ -58,10 +56,14 @@ str2entry( char *s )
Debug( LDAP_DEBUG_TRACE,
"<= str2entry NULL (missing newline after id)\n",
0, 0, 0 );
free( e );
return( NULL );
}
}
/* initialize reader/writer lock */
entry_rdwr_init(e);
/* dn + attributes */
e->e_attrs = NULL;
vals[0] = &bval;
......@@ -101,6 +103,7 @@ str2entry( char *s )
!= 0 ) {
Debug( LDAP_DEBUG_TRACE,
"<= str2entry NULL (attr_merge)\n", 0, 0, 0 );
entry_free( e );
return( NULL );
}
nvals++;
......
......@@ -273,6 +273,7 @@ main( int argc, char **argv )
/* log and send error */
Debug( LDAP_DEBUG_ANY,
"ber_get_int returns 0x%lx\n", tag, 0, 0 );
ber_free( &ber, 1 );
return 1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment