]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/entry.c
Fix build errors
[openldap] / servers / slapd / entry.c
index a7cb17baefeebc678c2022e897e9ad7243b0506d..8d04e949e88224b8529b95426919627ea816a61c 100644 (file)
@@ -15,6 +15,7 @@
 #include <ac/string.h>
 
 #include "slap.h"
+#include "ldif.h"
 
 static unsigned char   *ebuf;  /* buf returned by entry2str             */
 static unsigned char   *ecur;  /* pointer to end of currently used ebuf */
@@ -320,8 +321,14 @@ entry2str(
 void
 entry_free( Entry *e )
 {
-       Attribute       *a, *next;
+       /* free an entry structure */
+       assert( e != NULL );
 
+       /* e_private must be freed by the caller */
+       assert( e->e_private == NULL );
+       e->e_private = NULL;
+
+       /* free DNs */
        if ( e->e_dn != NULL ) {
                free( e->e_dn );
                e->e_dn = NULL;
@@ -330,12 +337,11 @@ entry_free( Entry *e )
                free( e->e_ndn );
                e->e_ndn = NULL;
        }
-       for ( a = e->e_attrs; a != NULL; a = next ) {
-               next = a->a_next;
-               attr_free( a );
-       }
+
+       /* free attributes */
+       attrs_free( e->e_attrs );
        e->e_attrs = NULL;
-       e->e_private = NULL;
+
        free( e );
 }