/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2007 The OpenLDAP Foundation.
+ * Copyright 1998-2008 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
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!
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;
}
an = str2anlist( an, line, brkstr );
if ( an == NULL )
- return NULL;
+ break;
lcur = line;
}
ch_free( line );