s4:schema/schema_set.c - free LDB message diffs
authorAnatoliy Atanasov <anatoliy.atanasov@postpath.com>
Thu, 24 Jun 2010 17:48:07 +0000 (20:48 +0300)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Wed, 30 Jun 2010 07:17:44 +0000 (09:17 +0200)
Especially the "free"s after "ldb_msg_diff" are very important since the diff
message is allocated on the long-living LDB context.

Signed-off-by: Matthias Dieter Wallnöfer <mdw@samba.org>
source4/dsdb/schema/schema_set.c

index 0e04f5b35eb16aaa7074e738f834c9efaf80bd9a..b5d8ae47f5b3e3bad29fa8a5339b564eed030386 100644 (file)
@@ -140,6 +140,7 @@ static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schem
                if (mod_msg->num_elements > 0) {
                        ret = dsdb_replace(ldb, mod_msg, 0);
                }
+               talloc_free(mod_msg);
        }
 
        if (ret == LDB_ERR_OPERATIONS_ERROR || ret == LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS || ret == LDB_ERR_INVALID_DN_SYNTAX) {
@@ -168,6 +169,7 @@ static int dsdb_schema_set_attributes(struct ldb_context *ldb, struct dsdb_schem
                if (mod_msg->num_elements > 0) {
                        ret = dsdb_replace(ldb, mod_msg, 0);
                }
+               talloc_free(mod_msg);
        }
        if (ret == LDB_ERR_OPERATIONS_ERROR || ret == LDB_ERR_INSUFFICIENT_ACCESS_RIGHTS || ret == LDB_ERR_INVALID_DN_SYNTAX) {
                /* We might be on a read-only DB */