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