mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
Plug some memory leaks
This commit is contained in:
parent
0aafb7267a
commit
4bb4499175
@ -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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user