The branch, master has been updated
       via  bed19f3 ldbedit: Prevent the use of the reveal internals control
      from  16ea6e1 talloc: fix TALLOC_VERSION_* mismatch detection

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


- Log -----------------------------------------------------------------
commit bed19f3744a4193bed1ea99debfb6263feb78b6c
Author: Garming Sam <[email protected]>
Date:   Mon Jan 30 11:08:07 2017 +1300

    ldbedit: Prevent the use of the reveal internals control
    
    This is almost certainly not what you want to do. Providing the output of 
reveal as the input of modify
    will necessarily revivify all dead linked attributes (regardless of 
--extended-dn or not).
    
    This is extremely unexpected behaviour, so we prevent this from happening.
    
    Signed-off-by: Garming Sam <[email protected]>
    Reviewed-by: Andrew Bartlett <[email protected]>
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=12596
    
    Autobuild-User(master): Garming Sam <[email protected]>
    Autobuild-Date(master): Wed Feb 22 04:23:05 CET 2017 on sn-devel-144

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

Summary of changes:
 lib/ldb/tools/ldbedit.c | 10 ++++++++++
 1 file changed, 10 insertions(+)


Changeset truncated at 500 lines:

diff --git a/lib/ldb/tools/ldbedit.c b/lib/ldb/tools/ldbedit.c
index cf4ab3f..5b83783 100644
--- a/lib/ldb/tools/ldbedit.c
+++ b/lib/ldb/tools/ldbedit.c
@@ -320,6 +320,7 @@ int main(int argc, const char **argv)
        const char * const * attrs = NULL;
        TALLOC_CTX *mem_ctx = talloc_new(NULL);
        struct ldb_control **req_ctrls;
+       unsigned int i;
 
        ldb = ldb_init(mem_ctx, NULL);
        if (ldb == NULL) {
@@ -347,6 +348,15 @@ int main(int argc, const char **argv)
                }
        }
 
+       for (i = 0; options->controls != NULL && options->controls[i] != NULL; 
i++) {
+               if (strncmp(options->controls[i], "reveal_internals:", 17) == 
0) {
+                       printf("Using reveal internals has unintended 
consequences.\n");
+                       printf("If this is your intent, manually perform the 
search,"
+                              " and use ldbmodify directly.\n");
+                       return LDB_ERR_OPERATIONS_ERROR;
+               }
+       }
+
        req_ctrls = ldb_parse_control_strings(ldb, ldb, (const char 
**)options->controls);
        if (options->controls != NULL &&  req_ctrls== NULL) {
                printf("parsing controls failed: %s\n", ldb_errstring(ldb));


-- 
Samba Shared Repository

Reply via email to