[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Fri Oct 19 12:00:02 UTC 2018


The branch, master has been updated
       via  e310ad7 s3:secrets: clean up sid before storing
      from  7b59cd7 dsdb encrypted_secrets: Allow "ldb:// and "mdb://" in file path

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


- Log -----------------------------------------------------------------
commit e310ad7e1ebabfb6d5f1a3cfd096da6cfe4a286c
Author: Philipp Gesang <philipp.gesang at intra2net.com>
Date:   Thu Oct 4 09:25:14 2018 +0200

    s3:secrets: clean up sid before storing
    
    SIDs may contain non-zero memory beyond SubAuthorityCount:
    
        {
        key(15) = "SECRETS/SID/FOO"
        data(68) = "\01\04\00\00\00\00\00\05\15\00\00\00}u@\8C\08\A3\06nx\95\16\FE\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`F\92\B7\03\00\00\00\18e\92\B7\03\00\00\00 at H\92\B7\00\00\00\00"
        }
    
    These parts are lost when converting to ``string format syntax``
    so a roundtrip conversion does not result in the same binary
    representation.
    
    Ensure that these never reach the tdb by using an initialized
    copy. This allows bitwise comparisons of secrets.tdb after
    dumping SIDs as text and reading them back.
    
    Signed-off-by: Philipp Gesang <philipp.gesang at intra2net.com>
    Reviewed-by: Volker Lendecke <vl at samba.org>
    Reviewed-by: Andrew Bartlett <abartlet at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Fri Oct 19 13:59:04 CEST 2018 on sn-devel-144

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

Summary of changes:
 source3/passdb/machine_account_secrets.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)


Changeset truncated at 500 lines:

diff --git a/source3/passdb/machine_account_secrets.c b/source3/passdb/machine_account_secrets.c
index a96bf1c..d8ffcaa 100644
--- a/source3/passdb/machine_account_secrets.c
+++ b/source3/passdb/machine_account_secrets.c
@@ -114,6 +114,7 @@ bool secrets_store_domain_sid(const char *domain, const struct dom_sid  *sid)
 {
 	char *protect_ids;
 	bool ret;
+	struct dom_sid clean_sid = { 0 };
 
 	protect_ids = secrets_fetch(protect_ids_keystr(domain), NULL);
 	if (protect_ids) {
@@ -126,7 +127,15 @@ bool secrets_store_domain_sid(const char *domain, const struct dom_sid  *sid)
 	}
 	SAFE_FREE(protect_ids);
 
-	ret = secrets_store(domain_sid_keystr(domain), sid, sizeof(struct dom_sid ));
+	/*
+	 * use a copy to prevent uninitialized memory from being carried over
+	 * to the tdb
+	 */
+	sid_copy(&clean_sid, sid);
+
+	ret = secrets_store(domain_sid_keystr(domain),
+			    &clean_sid,
+			    sizeof(struct dom_sid));
 
 	/* Force a re-query, in the case where we modified our domain */
 	if (ret) {


-- 
Samba Shared Repository



More information about the samba-cvs mailing list