The branch, master has been updated
       via  56290d0 s4:dsdb/repl/replicated_objects.c - proof if 
"talloc_reference" doesn't return NULL
       via  8742faf s4:dsdb/common/util.c - "samdb_msg_add_add/delval" - 
introduce also here the better memory context
       via  9733d71 ldb:ldb_msg_add_value - fix here a wrong memory context
       via  0cf4569 s4:ranged results LDB module - cosmetic - fix some 
indentation
       via  2185f91 s4:ranged results LDB module - "rr_search_callback" - 
change some memory context
      from  ffc3f94 s4/waf: add intl dependency for nss_winnbind

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 56290d0b337e2e01b021e98d1252ae604cf5c0f8
Author: Matthias Dieter Wallnöfer <[email protected]>
Date:   Wed Dec 1 16:28:57 2010 +0100

    s4:dsdb/repl/replicated_objects.c - proof if "talloc_reference" doesn't 
return NULL
    
    Autobuild-User: Matthias Dieter Wallnöfer <[email protected]>
    Autobuild-Date: Wed Dec  1 17:14:01 CET 2010 on sn-devel-104

commit 8742faf19f814d5bfc5900d885c833ae0e8f8794
Author: Matthias Dieter Wallnöfer <[email protected]>
Date:   Wed Dec 1 16:22:15 2010 +0100

    s4:dsdb/common/util.c - "samdb_msg_add_add/delval" - introduce also here 
the better memory context
    
    "msg->elements" fits better than "msg".

commit 9733d711994fc7955a041b34a7b7a39f303d5cf3
Author: Matthias Dieter Wallnöfer <[email protected]>
Date:   Wed Dec 1 16:19:17 2010 +0100

    ldb:ldb_msg_add_value - fix here a wrong memory context
    
    A value array allocation should belong to "msg->elements" not "msg" directly

commit 0cf456960599d4a7b7af3cdc9d070d018572f77b
Author: Matthias Dieter Wallnöfer <[email protected]>
Date:   Wed Dec 1 16:15:56 2010 +0100

    s4:ranged results LDB module - cosmetic - fix some indentation

commit 2185f91568aa07e373722ca3d2412a99d59645e4
Author: Matthias Dieter Wallnöfer <[email protected]>
Date:   Wed Dec 1 16:14:01 2010 +0100

    s4:ranged results LDB module - "rr_search_callback" - change some memory 
context
    
    "el->values" could under some circumstances be NULL (see "if" above).

-----------------------------------------------------------------------

Summary of changes:
 source4/dsdb/common/util.c                      |    4 ++--
 source4/dsdb/repl/replicated_objects.c          |    3 ++-
 source4/dsdb/samdb/ldb_modules/ranged_results.c |    8 ++++++--
 source4/lib/ldb/common/ldb_msg.c                |    3 ++-
 4 files changed, 12 insertions(+), 6 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c
index fb891ab..e1aa898 100644
--- a/source4/dsdb/common/util.c
+++ b/source4/dsdb/common/util.c
@@ -808,7 +808,7 @@ int samdb_msg_add_addval(struct ldb_context *sam_ldb, 
TALLOC_CTX *mem_ctx,
                }
        }
 
-       vals = talloc_realloc(msg, el->values, struct ldb_val,
+       vals = talloc_realloc(msg->elements, el->values, struct ldb_val,
                              el->num_values + 1);
        if (vals == NULL) {
                return ldb_oom(sam_ldb);
@@ -864,7 +864,7 @@ int samdb_msg_add_delval(struct ldb_context *sam_ldb, 
TALLOC_CTX *mem_ctx,
                }
        }
 
-       vals = talloc_realloc(msg, el->values, struct ldb_val,
+       vals = talloc_realloc(msg->elements, el->values, struct ldb_val,
                              el->num_values + 1);
        if (vals == NULL) {
                return ldb_oom(sam_ldb);
diff --git a/source4/dsdb/repl/replicated_objects.c 
b/source4/dsdb/repl/replicated_objects.c
index 0965538..1ea1640 100644
--- a/source4/dsdb/repl/replicated_objects.c
+++ b/source4/dsdb/repl/replicated_objects.c
@@ -359,7 +359,8 @@ WERROR dsdb_replicated_objects_convert(struct ldb_context 
*ldb,
         * Ensure schema is kept valid for as long as 'out'
         * which may contain pointers to it
         */
-       talloc_reference(out, schema);
+       schema = talloc_reference(out, schema);
+       W_ERROR_HAVE_NO_MEMORY(schema);
 
        partition_dn = ldb_dn_new(out, ldb, partition_dn_str);
        W_ERROR_HAVE_NO_MEMORY_AND_FREE(partition_dn, out);
diff --git a/source4/dsdb/samdb/ldb_modules/ranged_results.c 
b/source4/dsdb/samdb/ldb_modules/ranged_results.c
index f8e8db6..3b82de8 100644
--- a/source4/dsdb/samdb/ldb_modules/ranged_results.c
+++ b/source4/dsdb/samdb/ldb_modules/ranged_results.c
@@ -157,7 +157,9 @@ static int rr_search_callback(struct ldb_request *req, 
struct ldb_reply *ares)
                        
                        el->num_values = 0;
                        
-                       el->values = talloc_array(ares->message->elements, 
struct ldb_val, (end - start) + 1);
+                       el->values = talloc_array(ares->message->elements,
+                                                 struct ldb_val,
+                                                 (end - start) + 1);
                        if (!el->values) {
                                ldb_oom(ldb);
                                return ldb_module_done(ac->req, NULL, NULL,
@@ -168,7 +170,9 @@ static int rr_search_callback(struct ldb_request *req, 
struct ldb_reply *ares)
                                el->num_values++;
                        }
                }
-               el->name = talloc_asprintf(el->values, "%s;range=%u-%s", 
el->name, start, end_str);
+               el->name = talloc_asprintf(ares->message->elements,
+                                          "%s;range=%u-%s", el->name, start,
+                                          end_str);
                if (!el->name) {
                        ldb_oom(ldb);
                        return ldb_module_done(ac->req, NULL, NULL,
diff --git a/source4/lib/ldb/common/ldb_msg.c b/source4/lib/ldb/common/ldb_msg.c
index dfd86c6..8b51ad0 100644
--- a/source4/lib/ldb/common/ldb_msg.c
+++ b/source4/lib/ldb/common/ldb_msg.c
@@ -226,7 +226,8 @@ int ldb_msg_add_value(struct ldb_message *msg,
                }
        }
 
-       vals = talloc_realloc(msg, el->values, struct ldb_val, 
el->num_values+1);
+       vals = talloc_realloc(msg->elements, el->values, struct ldb_val,
+                             el->num_values+1);
        if (!vals) {
                errno = ENOMEM;
                return LDB_ERR_OPERATIONS_ERROR;


-- 
Samba Shared Repository

Reply via email to