mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-28 18:49:34 -05:00
add anlist_free
This commit is contained in:
parent
2082935657
commit
62504d7ef0
2 changed files with 23 additions and 4 deletions
|
|
@ -963,10 +963,8 @@ str2anlist( AttributeName *an, char *in, const char *brkstr )
|
|||
return( an );
|
||||
|
||||
reterr:
|
||||
for ( i = 0; an[i].an_name.bv_val; i++ ) {
|
||||
free( an[i].an_name.bv_val );
|
||||
}
|
||||
free( an );
|
||||
anlist_free( an, 1, NULL );
|
||||
|
||||
/*
|
||||
* overwrites input string
|
||||
* on error!
|
||||
|
|
@ -976,6 +974,24 @@ reterr:
|
|||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
anlist_free( AttributeName *an, int freename, void *ctx )
|
||||
{
|
||||
if ( an == NULL ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( freename ) {
|
||||
int i;
|
||||
|
||||
for ( i = 0; an[i].an_name.bv_val; i++ ) {
|
||||
ber_memfree_x( an[i].an_name.bv_val, ctx );
|
||||
}
|
||||
}
|
||||
|
||||
ber_memfree_x( an, ctx );
|
||||
}
|
||||
|
||||
char **anlist2charray_x( AttributeName *an, int dup, void *ctx )
|
||||
{
|
||||
char **attrs;
|
||||
|
|
|
|||
|
|
@ -168,6 +168,9 @@ LDAP_SLAPD_F (AttributeDescription *) ad_find_tags LDAP_P((
|
|||
|
||||
LDAP_SLAPD_F (AttributeName *) str2anlist LDAP_P(( AttributeName *an,
|
||||
char *str, const char *brkstr ));
|
||||
LDAP_SLAPD_F (void) anlist_free LDAP_P(( AttributeName *an,
|
||||
int freename, void *ctx ));
|
||||
|
||||
LDAP_SLAPD_F (char **) anlist2charray_x LDAP_P((
|
||||
AttributeName *an, int dup, void *ctx ));
|
||||
LDAP_SLAPD_F (char **) anlist2charray LDAP_P(( AttributeName *an, int dup ));
|
||||
|
|
|
|||
Loading…
Reference in a new issue