mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-18 11:05:48 +08:00
Fix MAJOR memory leak.
This commit is contained in:
parent
5b4e2498d9
commit
8fcb25216f
@ -99,14 +99,17 @@ str2entry( char *s )
|
||||
}
|
||||
|
||||
if ( strcasecmp( type, "dn" ) == 0 ) {
|
||||
free( type );
|
||||
|
||||
if ( e->e_dn != NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
"str2entry: entry %ld has multiple dns \"%s\" and \"%s\" (second ignored)\n",
|
||||
e->e_id, e->e_dn,
|
||||
value != NULL ? value : NULL );
|
||||
if( value != NULL ) free( value );
|
||||
continue;
|
||||
}
|
||||
e->e_dn = ch_strdup( value != NULL ? value : "" );
|
||||
e->e_dn = value != NULL ? value : ch_strdup( "" );
|
||||
|
||||
if ( e->e_ndn != NULL ) {
|
||||
Debug( LDAP_DEBUG_ANY,
|
||||
@ -127,8 +130,13 @@ str2entry( char *s )
|
||||
Debug( LDAP_DEBUG_TRACE,
|
||||
"<= str2entry NULL (attr_merge)\n", 0, 0, 0 );
|
||||
entry_free( e );
|
||||
free( value );
|
||||
free( type );
|
||||
return( NULL );
|
||||
}
|
||||
|
||||
free( value );
|
||||
free( type );
|
||||
nvals++;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user