]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/bconfig.c
Plug leaks
[openldap] / servers / slapd / bconfig.c
index ecd3bab137d3094e168e42f564a28c8ece487321..baa42e446c57c2e55e07e7b6744432815ab185fb 100644 (file)
@@ -4803,7 +4803,8 @@ config_modify_internal( CfEntryInfo *ce, Operation *op, SlapReply *rs,
                                        ca->valx = d->idx[i];
                                        rc = config_del_vals( ct, ca );
                                        if ( rc != LDAP_SUCCESS ) break;
-                                       s->a_flags |= SLAP_ATTR_IXDEL;
+                                       if ( s )
+                                               s->a_flags |= SLAP_ATTR_IXDEL;
                                        for (j=i+1; j < d->nidx; j++)
                                                if ( d->idx[j] >d->idx[i] )
                                                        d->idx[j]--;
@@ -4813,7 +4814,8 @@ config_modify_internal( CfEntryInfo *ce, Operation *op, SlapReply *rs,
                                ca->line = NULL;
                                rc = config_del_vals( ct, ca );
                                if ( rc ) rc = LDAP_OTHER;
-                               s->a_flags |= SLAP_ATTR_IXDEL;
+                               if ( s )
+                                       s->a_flags |= SLAP_ATTR_IXDEL;
                        }
                        if ( ml->sml_values ) {
                                d = d->next;
@@ -5243,6 +5245,9 @@ int config_entry_release(
        Entry *e,
        int rw )
 {
+       if ( !e->e_private ) {
+               entry_free( e );
+       }
        return LDAP_SUCCESS;
 }