r19324: fixed a leak on deleting records when no index is in place
authorAndrew Tridgell <tridge@samba.org>
Mon, 16 Oct 2006 10:12:43 +0000 (10:12 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:21:09 +0000 (14:21 -0500)
(This used to be commit 0824b3b8c1003064b0f2c5a3f084f3e711155e8c)

source4/lib/ldb/ldb_tdb/ldb_index.c

index 8a9a82a98ceda39376fe990add14ccd9a677843f..0c9d1f33a1bfda545fdd1627b831c84eb7b10cb2 100644 (file)
@@ -1030,6 +1030,12 @@ int ltdb_index_del(struct ldb_module *module, const struct ldb_message *msg)
        char *dn;
        unsigned int i, j;
 
+       /* find the list of indexed fields */   
+       if (ltdb->cache->indexlist->num_elements == 0) {
+               /* no indexed fields */
+               return 0;
+       }
+
        if (ldb_dn_is_special(msg->dn)) {
                return 0;
        }
@@ -1039,12 +1045,6 @@ int ltdb_index_del(struct ldb_module *module, const struct ldb_message *msg)
                return -1;
        }
 
-       /* find the list of indexed fields */   
-       if (ltdb->cache->indexlist->num_elements == 0) {
-               /* no indexed fields */
-               return 0;
-       }
-
        for (i = 0; i < msg->num_elements; i++) {
                ret = ldb_msg_find_idx(ltdb->cache->indexlist, msg->elements[i].name, 
                                       NULL, LTDB_IDXATTR);