replmd: Remove some redundant code
authorTim Beale <timbeale@catalyst.net.nz>
Sun, 11 Nov 2018 22:21:36 +0000 (11:21 +1300)
committerTim Beale <timbeale@samba.org>
Wed, 21 Nov 2018 00:51:11 +0000 (01:51 +0100)
At first glance, this code seemed completely unnecessary. However, it
was added (by commit f6bc4c08b19f5615) for a valid reason: adding the
whenChanged/uSNChanged attributes to the message can cause msg->elements
to be reallocated, which means the old_el pointer (which points to
msg->elements memory) can be out of date.

whenChanged/uSNChanged now get added to the msg last, just before the DB
modify operation. So old_el can no longer become out of date within
replmd_process_link_attribute(), so re-fetching it is now redundant.

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/dsdb/samdb/ldb_modules/repl_meta_data.c

index 88c5b6c..bcb74f4 100644 (file)
@@ -8141,11 +8141,6 @@ static int replmd_process_linked_attribute(struct ldb_module *module,
                }
        }
 
-       old_el = ldb_msg_find_element(msg, attr->lDAPDisplayName);
-       if (old_el == NULL) {
-               return ldb_operr(ldb);
-       }
-
        ret = dsdb_check_single_valued_link(attr, old_el);
        if (ret != LDB_SUCCESS) {
                return ret;