[SCM] Samba Shared Repository - branch v4-11-stable updated

Karolin Seeger kseeger at samba.org
Wed Aug 21 10:42:07 UTC 2019


The branch, v4-11-stable has been updated
       via  521240aa372 VERSION: Disable GIT_SNAPSHOT for the 4.11.0rc2 release.
       via  c14427253e8 tdb: Release tdb 1.4.2
       via  afd6b77bb84 tdb: Inline the common part of tdb_oob
       via  3325a4d4146 tdb: Speed up tdb_oob()
       via  6312223d6e6 tdb: Introduce tdb_oob()
       via  fab20658b9a tdb: Rename tdb_oob() to tdb_notrans_oob()
       via  38876ad4ef4 smbtorture: extend rpc.lsa to lookup machine over forest-wide LookupNames
       via  60d22232734 lookup_name: allow own domain lookup when flags == 0
       via  8dfa63d9f72 torture/rpc/lsa: allow testing different lookup levels
       via  428ecb5f4e2 WHATSNEW: Fix some minor formatting issues.
       via  62e65124e9d smbd: Fix use-after-free from exit_server_common()
       via  6b4c51d0c94 WHATSNEW: Add link to 2012 Windows compatibility wiki page
       via  02352ebbef6 WHATSNEW: Make it clearer how the AD database changes will affect users
       via  97a742fe761 tests/drs_no_dns: Check dbcheck and ldapcmp pass
       via  c7a5694f4f8 tests: Add samba_upgradedns to the list of possible cmds
       via  8a09ea3c70f netcmd: Allow drs replicate --local to create partitions
       via  816053b7bba join: Use a specific attribute order for the DsAddEntry nTDSDSA object
       via  636f7dedd40 tests/ldap: Use TLDAP to check the extended DN return
       via  a1d0ce447e7 tests/tldap: Actually check the paging return code
       via  23f8a8ee71b tldap: Paged searches fail when they get to the end
       via  dd36cafdb96 tldap: Make memcpy of no controls safe
       via  b95186a5332 ldap_server: Regression in 0559430ab6e5c48d6e853fda0d8b63f2e149015c
       via  122d7afb50e WHATSNEW: document new debug encryption smb.conf param
       via  98051741ea5 WHATSNEW: add CephFS Snapshot Integration section
       via  f2c40f4d41a gp_inf: Read/write files with a UTF-16LE BOM in GptTmpl.inf
       via  29fa37b717c partition: reversing partition unlocking
       via  6877eabea8f partition: correcting lock ordering
       via  1c64a2e37b6 WHATSNEW: preview release -> release candidate
       via  ac9740a0966 VERSION: Bump version up to 4.11.0rc2...
      from  2da294048fc VERSION: Disable GIT_SNAPSHOT for the 4.11.0rc1 release...

https://git.samba.org/?p=samba.git;a=shortlog;h=v4-11-stable


- Log -----------------------------------------------------------------
-----------------------------------------------------------------------

Summary of changes:
 VERSION                                            |   2 +-
 WHATSNEW.txt                                       |  66 ++++--
 lib/tdb/ABI/{tdb-1.3.17.sigs => tdb-1.4.2.sigs}    |   0
 lib/tdb/common/check.c                             |   6 +-
 lib/tdb/common/freelist.c                          |   2 +-
 lib/tdb/common/io.c                                |  33 ++-
 lib/tdb/common/open.c                              |   6 +-
 lib/tdb/common/rescue.c                            |   4 +-
 lib/tdb/common/tdb_private.h                       |  13 ++
 lib/tdb/common/transaction.c                       |   7 +-
 lib/tdb/common/traverse.c                          |   3 +-
 lib/tdb/test/run-3G-file.c                         |   2 +-
 lib/tdb/wscript                                    |   2 +-
 python/samba/gp_parse/gp_inf.py                    |   9 +-
 python/samba/join.py                               |  23 +-
 python/samba/netcmd/drs.py                         |   4 +-
 python/samba/tests/__init__.py                     |   1 +
 source3/lib/tldap_util.c                           |   7 +-
 source3/passdb/lookup_sid.c                        |   2 +-
 source3/smbd/server_exit.c                         |  22 +-
 source3/torture/torture.c                          | 178 ++++++++++++++
 source4/dsdb/samdb/ldb_modules/partition.c         | 260 ++++++++++++---------
 source4/ldap_server/ldap_backend.c                 |   1 +
 .../Windows NT/SecEdit/GptTmpl.inf.SAMBABACKUP     | Bin 2580 -> 2582 bytes
 source4/selftest/tests.py                          |   7 +
 .../torture/drs/python/samba_tool_drs_no_dns.py    | 183 +++++++++++++++
 source4/torture/rpc/lsa.c                          | 128 +++++-----
 source4/torture/rpc/schannel.c                     |   2 +-
 28 files changed, 752 insertions(+), 221 deletions(-)
 copy lib/tdb/ABI/{tdb-1.3.17.sigs => tdb-1.4.2.sigs} (100%)
 create mode 100644 source4/torture/drs/python/samba_tool_drs_no_dns.py


Changeset truncated at 500 lines:

diff --git a/VERSION b/VERSION
index e9931834e6c..12f04435907 100644
--- a/VERSION
+++ b/VERSION
@@ -87,7 +87,7 @@ SAMBA_VERSION_PRE_RELEASE=
 # e.g. SAMBA_VERSION_RC_RELEASE=1                      #
 #  ->  "3.0.0rc1"                                      #
 ########################################################
-SAMBA_VERSION_RC_RELEASE=1
+SAMBA_VERSION_RC_RELEASE=2
 
 ########################################################
 # To mark SVN snapshots this should be set to 'yes'    #
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index c0d13d20d6b..6a0cc9d72fd 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -1,7 +1,7 @@
 Release Announcements
 =====================
 
-This is the first preview release of Samba 4.11.  This is *not*
+This is the second release candidate of Samba 4.11.  This is *not*
 intended for production environments and is designed for testing
 purposes only.  Please report any defects via the Samba bug reporting
 system at https://bugzilla.samba.org/.
@@ -12,6 +12,32 @@ Samba 4.11 will be the next version of the Samba suite.
 UPGRADING
 =========
 
+AD Database compatibility
+-------------------------
+
+Samba 4.11 has changed how the AD database is stored on disk. AD users should
+not really be affected by this change when upgrading to 4.11. However, AD
+users should be extremely careful if they need to downgrade from Samba 4.11 to
+an older release.
+
+Samba 4.11 maintains database compatibility with older Samba releases. The
+database will automatically get rewritten in the new 4.11 format when you
+first start the upgraded samba executable.
+
+However, when downgrading from 4.11 you will need to manually downgrade the AD
+database yourself. Note that you will need to do this step before you install
+the downgraded Samba packages. For more details, see:
+https://wiki.samba.org/index.php/Downgrading_an_Active_Directory_DC
+
+When either upgrading or downgrading, users should also avoid making any
+database modifications between installing the new Samba packages and starting
+the samba executable.
+
+Note that when moving between major Samba releases in general, we recommend
+that the AD DC is rejoined to the domain. Using this approach avoids the need
+to explicitly downgrade the database manually. For more details, see:
+https://wiki.samba.org/index.php/Upgrading_a_Samba_AD_DC
+
 SMB1 is disabled by default
 ---------------------------
 
@@ -30,7 +56,7 @@ and LANMAN1 for client and server, as well as CORE and COREPLUS on
 the client.
 
 Note that most commandline tools e.g. smbclient, smbcacls and others
-also support the --option argument to overwrite smb.conf options,
+also support the '--option' argument to overwrite smb.conf options,
 e.g. --option='client min protocol=NT1' might be useful.
 
 As Microsoft no longer installs SMB1 support in recent releases
@@ -48,7 +74,7 @@ NEW FEATURES/CHANGES
 Default samba process model
 ---------------------------
 
-The default for the --model argument passed to the samba executable has changed
+The default for the '--model' argument passed to the samba executable has changed
 from 'standard' to 'prefork'. This means a difference in the number of samba
 child processes that are created to handle client connections. The previous
 default would create a separate process for every LDAP or NETLOGON client
@@ -59,8 +85,8 @@ worker processes at startup and share the client connections amongst these
 workers. The number of worker processes can be configured by the 'prefork
 children' setting in the smb.conf (the default is 4).
 
-Authentication Logging.
------------------------
+Authentication Logging
+----------------------
 
 Winbind now logs PAM_AUTH and NTLM_AUTH events, a new attribute "logonId" has
 been added to the Authentication JSON log messages.  This contains a random
@@ -76,26 +102,27 @@ where:
    <command> is the name of the command makinmg the winbind request i.e. wbinfo
    <pid>     is the process id of the requesting process.
 
-The version of the JSON Authentication messages has been changed to 1.2 from 1.1
+The version of the JSON Authentication messages has been changed from 1.1 to
+1.2.
 
 LDAP referrals
 --------------
 
 The scheme of returned LDAP referrals now reflects the scheme of the original
 request, i.e. referrals received via ldap are prefixed with "ldap://"
-and those over ldaps are prefixed with "ldaps://"
+and those over ldaps are prefixed with "ldaps://".
 
-Previously all referrals were prefixed with "ldap://"
+Previously all referrals were prefixed with "ldap://".
 
 Bind9 logging
 -------------
 
-It is now possible to log the duration of DNS operations performed by Bind9
-This should aid future diagnosis of performance issues, and could be used to
+It is now possible to log the duration of DNS operations performed by Bind9.
+This should aid future diagnosis of performance issues and could be used to
 monitor DNS performance. The logging is enabled by setting log level to
-"dns:10" in smb.conf
+"dns:10" in smb.conf.
 
-The logs are currently Human readable text only, i.e. no JSON formatted output.
+The logs are currently human readable text only, i.e. no JSON formatted output.
 
 Log lines are of the form:
 
@@ -116,6 +143,10 @@ Samba's replication code has also been improved to handle replication
 with the 2012 schema (the core of this replication fix has also been
 backported to 4.9.11 and will be in a 4.10.x release).
 
+For more about how the AD schema relates to overall Windows compatibility,
+please read:
+https://wiki.samba.org/index.php/Windows_2012_Server_compatibility
+
 GnuTLS 3.2 required
 -------------------
 
@@ -180,7 +211,7 @@ multiple times into memory.
 Setting lmdb map size
 ---------------------
 
-It is now possible to set the lmdb map size (The maximum permitted
+It is now possible to set the lmdb map size (the maximum permitted
 size for the database).  "samba-tool" now accepts the
 "--backend-store-size" i.e. --backend-store-size=4Gb.  If not
 specified it defaults to 8Gb.
@@ -254,6 +285,12 @@ CTDB changes
   swap) utilisation using the existing CTDB_MONITOR_MEMORY_USAGE
   script configuration variable.
 
+CephFS Snapshot Integration
+---------------------------
+
+CephFS snapshots can now be exposed as previous file versions using the new
+ceph_snapshots VFS module. See the vfs_ceph_snapshots(8) man page for details.
+
 
 REMOVED FEATURES
 ================
@@ -266,14 +303,12 @@ Samba still supported a Python WSGI web server (which could still be turned on
 from the 'server services' smb.conf parameter). This service was unused and has
 now been removed from Samba.
 
-
 samba-tool join subdomain
 -------------------------
 
 The subdomain role has been removed from the join command.  This option did
 not work and has no tests.
 
-
 Python2 support
 ---------------
 
@@ -306,6 +341,7 @@ smb.conf changes
   mangled names                      Changed default            illegal
   web port                           Removed
   fruit:zero_file_id                 Changed default            False
+  debug encryption                   New: dump encryption keys  False
 
 
 KNOWN ISSUES
diff --git a/lib/tdb/ABI/tdb-1.3.17.sigs b/lib/tdb/ABI/tdb-1.4.2.sigs
similarity index 100%
copy from lib/tdb/ABI/tdb-1.3.17.sigs
copy to lib/tdb/ABI/tdb-1.4.2.sigs
diff --git a/lib/tdb/common/check.c b/lib/tdb/common/check.c
index 3a5c8b8ba94..d7741f6b2f9 100644
--- a/lib/tdb/common/check.c
+++ b/lib/tdb/common/check.c
@@ -94,7 +94,7 @@ static bool tdb_check_record(struct tdb_context *tdb,
 			 off, rec->next));
 		goto corrupt;
 	}
-	if (tdb->methods->tdb_oob(tdb, rec->next, sizeof(*rec), 0))
+	if (tdb_oob(tdb, rec->next, sizeof(*rec), 0))
 		goto corrupt;
 
 	/* Check rec_len: similar to rec->next, implies next record. */
@@ -112,7 +112,7 @@ static bool tdb_check_record(struct tdb_context *tdb,
 		goto corrupt;
 	}
 	/* OOB allows "right at the end" access, so this works for last rec. */
-	if (tdb->methods->tdb_oob(tdb, off, sizeof(*rec)+rec->rec_len, 0))
+	if (tdb_oob(tdb, off, sizeof(*rec)+rec->rec_len, 0))
 		goto corrupt;
 
 	/* Check tailer. */
@@ -362,7 +362,7 @@ _PUBLIC_ int tdb_check(struct tdb_context *tdb,
 	}
 
 	/* Make sure we know true size of the underlying file. */
-	tdb->methods->tdb_oob(tdb, tdb->map_size, 1, 1);
+	tdb_oob(tdb, tdb->map_size, 1, 1);
 
 	/* Header must be OK: also gets us the recovery ptr, if any. */
 	if (!tdb_check_header(tdb, &recovery_start))
diff --git a/lib/tdb/common/freelist.c b/lib/tdb/common/freelist.c
index 37a4c168533..046c747cf9b 100644
--- a/lib/tdb/common/freelist.c
+++ b/lib/tdb/common/freelist.c
@@ -50,7 +50,7 @@ int tdb_rec_free_read(struct tdb_context *tdb, tdb_off_t off, struct tdb_record
 			   rec->magic, off));
 		return -1;
 	}
-	if (tdb->methods->tdb_oob(tdb, rec->next, sizeof(*rec), 0) != 0)
+	if (tdb_oob(tdb, rec->next, sizeof(*rec), 0) != 0)
 		return -1;
 	return 0;
 }
diff --git a/lib/tdb/common/io.c b/lib/tdb/common/io.c
index df460176159..0de0dabd827 100644
--- a/lib/tdb/common/io.c
+++ b/lib/tdb/common/io.c
@@ -136,8 +136,8 @@ static int tdb_fstat(struct tdb_context *tdb, struct stat *buf)
    see if the database has been expanded by someone else and expand
    if necessary
 */
-static int tdb_oob(struct tdb_context *tdb, tdb_off_t off, tdb_len_t len,
-		   int probe)
+static int tdb_notrans_oob(
+	struct tdb_context *tdb, tdb_off_t off, tdb_len_t len, int probe)
 {
 	struct stat st;
 	if (len + off < len) {
@@ -150,6 +150,11 @@ static int tdb_oob(struct tdb_context *tdb, tdb_off_t off, tdb_len_t len,
 		return -1;
 	}
 
+	/*
+	 * This duplicates functionality from tdb_oob(). Don't remove:
+	 * we still have direct callers of tdb->methods->tdb_oob()
+	 * inside transaction.c.
+	 */
 	if (off + len <= tdb->map_size)
 		return 0;
 	if (tdb->flags & TDB_INTERNAL) {
@@ -216,7 +221,7 @@ static int tdb_write(struct tdb_context *tdb, tdb_off_t off,
 		return -1;
 	}
 
-	if (tdb->methods->tdb_oob(tdb, off, len, 0) != 0)
+	if (tdb_oob(tdb, off, len, 0) != 0)
 		return -1;
 
 	if (tdb->map_ptr) {
@@ -271,7 +276,7 @@ void *tdb_convert(void *buf, uint32_t size)
 static int tdb_read(struct tdb_context *tdb, tdb_off_t off, void *buf,
 		    tdb_len_t len, int cv)
 {
-	if (tdb->methods->tdb_oob(tdb, off, len, 0) != 0) {
+	if (tdb_oob(tdb, off, len, 0) != 0) {
 		return -1;
 	}
 
@@ -596,7 +601,7 @@ int tdb_expand(struct tdb_context *tdb, tdb_off_t size)
 	}
 
 	/* must know about any previous expansions by another process */
-	tdb->methods->tdb_oob(tdb, tdb->map_size, 1, 1);
+	tdb_oob(tdb, tdb->map_size, 1, 1);
 
 	/*
 	 * Note: that we don't care about tdb->hdr_ofs != 0 here
@@ -662,6 +667,12 @@ int tdb_expand(struct tdb_context *tdb, tdb_off_t size)
 	return -1;
 }
 
+int _tdb_oob(struct tdb_context *tdb, tdb_off_t off, tdb_len_t len, int probe)
+{
+	int ret = tdb->methods->tdb_oob(tdb, off, len, probe);
+	return ret;
+}
+
 /* read/write a tdb_off_t */
 int tdb_ofs_read(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d)
 {
@@ -714,7 +725,7 @@ int tdb_parse_data(struct tdb_context *tdb, TDB_DATA key,
 		 * Optimize by avoiding the malloc/memcpy/free, point the
 		 * parser directly at the mmap area.
 		 */
-		if (tdb->methods->tdb_oob(tdb, offset, len, 0) != 0) {
+		if (tdb_oob(tdb, offset, len, 0) != 0) {
 			return -1;
 		}
 		data.dptr = offset + (unsigned char *)tdb->map_ptr;
@@ -756,20 +767,20 @@ int tdb_rec_read(struct tdb_context *tdb, tdb_off_t offset, struct tdb_record *r
 		return -1;
 	}
 
-	ret = tdb->methods->tdb_oob(tdb, offset, rec->key_len, 1);
+	ret = tdb_oob(tdb, offset, rec->key_len, 1);
 	if (ret == -1) {
 		return -1;
 	}
-	ret = tdb->methods->tdb_oob(tdb, offset, rec->data_len, 1);
+	ret = tdb_oob(tdb, offset, rec->data_len, 1);
 	if (ret == -1) {
 		return -1;
 	}
-	ret = tdb->methods->tdb_oob(tdb, offset, rec->rec_len, 1);
+	ret = tdb_oob(tdb, offset, rec->rec_len, 1);
 	if (ret == -1) {
 		return -1;
 	}
 
-	return tdb->methods->tdb_oob(tdb, rec->next, sizeof(*rec), 0);
+	return tdb_oob(tdb, rec->next, sizeof(*rec), 0);
 }
 
 int tdb_rec_write(struct tdb_context *tdb, tdb_off_t offset, struct tdb_record *rec)
@@ -782,7 +793,7 @@ static const struct tdb_methods io_methods = {
 	tdb_read,
 	tdb_write,
 	tdb_next_hash_chain,
-	tdb_oob,
+	tdb_notrans_oob,
 	tdb_expand_file,
 };
 
diff --git a/lib/tdb/common/open.c b/lib/tdb/common/open.c
index dd5783ef8bc..f7f65b0e237 100644
--- a/lib/tdb/common/open.c
+++ b/lib/tdb/common/open.c
@@ -655,7 +655,7 @@ _PUBLIC_ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int td
 	 * As this skips tdb->hdr_ofs.
 	 */
 	tdb->map_size = 0;
-	ret = tdb->methods->tdb_oob(tdb, 0, 1, 0);
+	ret = tdb_oob(tdb, 0, 1, 0);
 	if (ret == -1) {
 		errno = EIO;
 		goto fail;
@@ -677,7 +677,7 @@ _PUBLIC_ struct tdb_context *tdb_open_ex(const char *name, int hash_size, int td
 		goto fail;
 	}
 
-	ret = tdb->methods->tdb_oob(tdb, FREELIST_TOP, 4*tdb->hash_size, 1);
+	ret = tdb_oob(tdb, FREELIST_TOP, 4*tdb->hash_size, 1);
 	if (ret == -1) {
 		TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_open_ex: "
 			 "hash size %"PRIu32" does not fit\n", tdb->hash_size));
@@ -895,7 +895,7 @@ static int tdb_reopen_internal(struct tdb_context *tdb, bool active_lock)
 	 * As this skips tdb->hdr_ofs.
 	 */
 	tdb->map_size = 0;
-	if (tdb->methods->tdb_oob(tdb, 0, 1, 0) != 0) {
+	if (tdb_oob(tdb, 0, 1, 0) != 0) {
 		goto fail;
 	}
 #endif /* fake pread or pwrite */
diff --git a/lib/tdb/common/rescue.c b/lib/tdb/common/rescue.c
index e608db41dea..7a85ebc9311 100644
--- a/lib/tdb/common/rescue.c
+++ b/lib/tdb/common/rescue.c
@@ -60,7 +60,7 @@ static bool looks_like_valid_record(struct tdb_context *tdb,
 	if (rec->next > 0 && rec->next < TDB_DATA_START(tdb->hash_size))
 		return false;
 
-	if (tdb->methods->tdb_oob(tdb, rec->next, sizeof(*rec), 1))
+	if (tdb_oob(tdb, rec->next, sizeof(*rec), 1))
 		return false;
 
 	key->dsize = rec->key_len;
@@ -228,7 +228,7 @@ _PUBLIC_ int tdb_rescue(struct tdb_context *tdb,
 	}
 
 	/* Make sure we know true size of the underlying file. */
-	tdb->methods->tdb_oob(tdb, tdb->map_size, 1, 1);
+	tdb_oob(tdb, tdb->map_size, 1, 1);
 
 	/* Suppress logging, since we anticipate errors. */
 	tdb->log.log_fn = logging_suppressed;
diff --git a/lib/tdb/common/tdb_private.h b/lib/tdb/common/tdb_private.h
index 42aaac62f59..29790434211 100644
--- a/lib/tdb/common/tdb_private.h
+++ b/lib/tdb/common/tdb_private.h
@@ -304,6 +304,19 @@ void *tdb_convert(void *buf, uint32_t size);
 int tdb_free(struct tdb_context *tdb, tdb_off_t offset, struct tdb_record *rec);
 tdb_off_t tdb_allocate(struct tdb_context *tdb, int hash, tdb_len_t length,
 		       struct tdb_record *rec);
+
+int _tdb_oob(struct tdb_context *tdb, tdb_off_t off, tdb_len_t len, int probe);
+
+static inline int tdb_oob(
+	struct tdb_context *tdb, tdb_off_t off, tdb_len_t len, int probe)
+{
+	if (likely((off + len >= off) && (off + len <= tdb->map_size))) {
+		return 0;
+	}
+	return _tdb_oob(tdb, off, len, probe);
+}
+
+
 int tdb_ofs_read(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d);
 int tdb_ofs_write(struct tdb_context *tdb, tdb_off_t offset, tdb_off_t *d);
 int tdb_lock_record(struct tdb_context *tdb, tdb_off_t off);
diff --git a/lib/tdb/common/transaction.c b/lib/tdb/common/transaction.c
index e9b0b26ea59..4f8d1f8cdcc 100644
--- a/lib/tdb/common/transaction.c
+++ b/lib/tdb/common/transaction.c
@@ -378,6 +378,11 @@ static void transaction_next_hash_chain(struct tdb_context *tdb, uint32_t *chain
 static int transaction_oob(struct tdb_context *tdb, tdb_off_t off,
 			   tdb_len_t len, int probe)
 {
+	/*
+	 * This duplicates functionality from tdb_oob(). Don't remove:
+	 * we still have direct callers of tdb->methods->tdb_oob()
+	 * inside transaction.c.
+	 */
 	if (off + len >= off && off + len <= tdb->map_size) {
 		return 0;
 	}
@@ -524,7 +529,7 @@ static int _tdb_transaction_start(struct tdb_context *tdb,
 
 	/* make sure we know about any file expansions already done by
 	   anyone else */
-	tdb->methods->tdb_oob(tdb, tdb->map_size, 1, 1);
+	tdb_oob(tdb, tdb->map_size, 1, 1);
 	tdb->transaction->old_map_size = tdb->map_size;
 
 	/* finally hook the io methods, replacing them with
diff --git a/lib/tdb/common/traverse.c b/lib/tdb/common/traverse.c
index 54a69dc8d03..d69e7dff285 100644
--- a/lib/tdb/common/traverse.c
+++ b/lib/tdb/common/traverse.c
@@ -453,8 +453,7 @@ _PUBLIC_ int tdb_traverse_chain(struct tdb_context *tdb,
 
 			if ((tdb->transaction == NULL) &&
 			    (tdb->map_ptr != NULL)) {
-				ret = tdb->methods->tdb_oob(
-					tdb, key_ofs, full_len, 0);
+				ret = tdb_oob(tdb, key_ofs, full_len, 0);
 				if (ret == -1) {
 					goto fail;
 				}
diff --git a/lib/tdb/test/run-3G-file.c b/lib/tdb/test/run-3G-file.c
index 748c972284a..79e291b294e 100644
--- a/lib/tdb/test/run-3G-file.c
+++ b/lib/tdb/test/run-3G-file.c
@@ -48,7 +48,7 @@ static const struct tdb_methods large_io_methods = {
 	tdb_read,
 	tdb_write,
 	tdb_next_hash_chain,
-	tdb_oob,
+	tdb_notrans_oob,
 	tdb_expand_file_sparse
 };
 
diff --git a/lib/tdb/wscript b/lib/tdb/wscript
index ece44f82e33..1ab0e8d334a 100644
--- a/lib/tdb/wscript
+++ b/lib/tdb/wscript
@@ -1,7 +1,7 @@
 #!/usr/bin/env python
 
 APPNAME = 'tdb'
-VERSION = '1.4.1'
+VERSION = '1.4.2'
 
 import sys, os
 
diff --git a/python/samba/gp_parse/gp_inf.py b/python/samba/gp_parse/gp_inf.py
index 79e28159f1f..a3c828fa82d 100644
--- a/python/samba/gp_parse/gp_inf.py
+++ b/python/samba/gp_parse/gp_inf.py
@@ -29,11 +29,11 @@ from samba.gp_parse import GPParser
 # [MS-GPSB] Security Protocol Extension
 class GptTmplInfParser(GPParser):
     sections = None
-    encoding = 'utf-16le'
+    encoding = 'utf-16'
+    output_encoding = 'utf-16le'
 
     class AbstractParam:
         __metaclass__ = ABCMeta
-        encoding = 'utf-16le'
 
         def __init__(self):
             self.param_list = []
@@ -333,7 +333,10 @@ class GptTmplInfParser(GPParser):
 
     def write_binary(self, filename):


-- 
Samba Shared Repository



More information about the samba-cvs mailing list