r25981: Don't create an ldb_request on NULL.
authorAndrew Bartlett <abartlet@samba.org>
Fri, 16 Nov 2007 03:18:22 +0000 (04:18 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 21 Dec 2007 04:45:27 +0000 (05:45 +0100)
A re-arrangment of the code due to the base DN checking meant that the
ac->down_req array wasn't started, so was NULL

Andrew Bartlett
(This used to be commit 0a44b8e9f3e1a85c27d105cdd1572a0df936f612)

source4/dsdb/samdb/ldb_modules/linked_attributes.c

index f3e66c5065eb9d55a6c5a55dc759213251ec9bf4..fd36c16d5699c2a5505c12a705d1015c187a2792 100644 (file)
@@ -127,8 +127,18 @@ static int setup_modifies(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
                for (j=0; j < el->num_values; j++) {
                        struct ldb_message_element *ret_el;
                        struct ldb_request *new_req;
+                       struct ldb_message *new_msg;
+
+                       /* Create a spot in the list for the requests */
+                       ac->down_req = talloc_realloc(ac, ac->down_req, 
+                                                     struct ldb_request *, ac->num_requests + 1);
+                       if (!ac->down_req) {
+                               ldb_oom(ldb);
+                               return LDB_ERR_OPERATIONS_ERROR;
+                       }
+
                        /* Create the modify request */
-                       struct ldb_message *new_msg = ldb_msg_new(ac->down_req);
+                       new_msg = ldb_msg_new(ac->down_req);
                        if (!new_msg) {
                                ldb_oom(ldb);
                                return LDB_ERR_OPERATIONS_ERROR;
@@ -184,13 +194,6 @@ static int setup_modifies(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
                        
                        ldb_set_timeout_from_prev_req(ldb, ac->orig_req, new_req);
                        
-                       /* Now add it to the list */
-                       ac->down_req = talloc_realloc(ac, ac->down_req, 
-                                                     struct ldb_request *, ac->num_requests + 1);
-                       if (!ac->down_req) {
-                               ldb_oom(ldb);
-                               return LDB_ERR_OPERATIONS_ERROR;
-                       }
                        ac->down_req[ac->num_requests] = new_req;
                        ac->num_requests++;