The branch, master has been updated
via 5d288a9 tdbtool: Add "storehex" command
via 4ceba0e secrets: Protect against a non-0-terminated ldap password
via 3661272 vfs_fruit: lp_case_sensitive() does not return a bool
from 52349a7 selftest: Do not enable inbound replication during
replica_sync
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -
commit 5d288a9b1705b75e7e8dcf93a93b7fd6715ad5ef
Author: Volker Lendecke
Date: Fri Apr 21 14:10:33 2017 +0200
tdbtool: Add "storehex" command
Signed-off-by: Volker Lendecke
Reviewed-by: Ralph Böhme
Autobuild-User(master): Jeremy Allison
Autobuild-Date(master): Sat Apr 22 09:16:16 CEST 2017 on sn-devel-144
commit 4ceba0e18f7ba8f2b32ba24864095683f2168db0
Author: Volker Lendecke
Date: Fri Apr 21 13:05:12 2017 +0200
secrets: Protect against a non-0-terminated ldap password
Signed-off-by: Volker Lendecke
Reviewed-by: Ralph Böhme
commit 36612723b2b18675116b6197183bdfe5e1d9e06f
Author: Ralph Boehme
Date: Wed Apr 19 13:12:55 2017 +0200
vfs_fruit: lp_case_sensitive() does not return a bool
lp_case_sensitive() returns an int, not a bool, so with the default
setting of "Auto" by default we set the AAPL flag
SMB2_CRTCTX_AAPL_CASE_SENSITIVE.
This caused the client to believe the volume is case sensitive where it
wasn't, leading to an error when trying to rename files changing only
the case of the name.
Also fix the existing torture test that verifies AAPL context
negotiation and actually expected the server to return "case sensitive",
while the Samba default is really "case insensitive".
Bug: https://bugzilla.samba.org/show_bug.cgi?id=12749
Signed-off-by: Ralph Boehme
Reviewed-by: Jeremy Allison
---
Summary of changes:
lib/tdb/man/tdbtool.8.xml | 10 ++
lib/tdb/tools/tdbtool.c | 87 +
source3/modules/vfs_fruit.c | 20 +--
source3/passdb/secrets.c| 7
source4/torture/vfs/fruit.c | 4 +--
5 files changed, 123 insertions(+), 5 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/tdb/man/tdbtool.8.xml b/lib/tdb/man/tdbtool.8.xml
index 9a9b95e..045cbde 100644
--- a/lib/tdb/man/tdbtool.8.xml
+++ b/lib/tdb/man/tdbtool.8.xml
@@ -160,6 +160,16 @@
+ storehex
+ KEY
+ DATA
+
+ Store (replace) a record in the
+ current database where key and data are in hex format.
+
+
+
+
show
KEY
diff --git a/lib/tdb/tools/tdbtool.c b/lib/tdb/tools/tdbtool.c
index beb3af1..e3535b9 100644
--- a/lib/tdb/tools/tdbtool.c
+++ b/lib/tdb/tools/tdbtool.c
@@ -48,6 +48,7 @@ enum commands {
CMD_DUMP,
CMD_INSERT,
CMD_MOVE,
+ CMD_STOREHEX,
CMD_STORE,
CMD_SHOW,
CMD_KEYS,
@@ -83,6 +84,7 @@ COMMAND_TABLE cmd_table[] = {
{"dump",CMD_DUMP},
{"insert", CMD_INSERT},
{"move",CMD_MOVE},
+ {"storehex",CMD_STOREHEX},
{"store", CMD_STORE},
{"show",CMD_SHOW},
{"keys",CMD_KEYS},
@@ -229,6 +231,7 @@ static void help(void)
" info : print summary info about the database\n"
" insertkey data : insert a record\n"
" move key file : move a record to a destination tdb\n"
+" storehex key data : store a record (replace), key/value in hex format\n"
" store key data : store a record (replace)\n"
" show key: show a record by key\n"
" deletekey: delete a record by key\n"
@@ -346,6 +349,86 @@ static void store_tdb(char *keyname, size_t keylen, char*
data, size_t datalen)
}
}
+static bool hexchar(char c, uint8_t *v)
+{
+ if ((c >= '0') && (c <= '9')) {
+ *v = (c - '0');
+ return true;
+ }
+ if ((c >= 'A') && (c <= 'F')) {
+ *v = (c - 'A' + 10);
+ return true;
+ }
+ if ((c >= 'a') && (c <= 'f')) {
+ *v = (c - 'a' + 10);
+ return true;
+ }
+ return false;
+}
+
+static bool parse_hex(const char *src, size_t srclen, uint8_t *dst)
+{
+ size_t i=0;
+
+ if ((srclen % 2) != 0) {
+ return false;
+ }
+
+ while (i