The branch, master has been updated
       via  92c726dc7a8 make some auth functions return an NTSTATUS like other 
similar functions for better diagnostics.
       via  959a4837b54 Spelling fixes s/verson/version/
       via  882d8a5bf41 Spelling fixes s/conficts/conflicts/
       via  6064543d64e Spelling fixes s/overrided/overridden/
       via  720396f0fb4 Spelling fix s/informations/information/
       via  2044ca0e20b s3:ldap: Leave add machine code early for pre-existing 
accounts
       via  c016afc8325 s3:libads: Make sure we can lookup KDCs which are not 
configured
       via  b7f0c64514a s3:libnet: Use more secure name for the JOIN krb5.conf
       via  5c7f0a6902c auth:creds: Prefer the principal over DOMAIN/username 
when using NTLM
       via  9e92654899d auth:ntlmssp: Add back CRAP ndr debug output
       via  3a33c360071 s3:libnet: Fix debug message in libnet_DomainJoin()
       via  011a47f04da s3:libsmb: Add some useful debug output to cliconnect
       via  40669e3739e s3:libads: Print more information when LDAP fails
      from  0876712ce8f libsmb: Make cli_posix_chown/chmod proper tevent_req 
functions

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


- Log -----------------------------------------------------------------
commit 92c726dc7a83834ee0e49d83e676b02f7687f5cd
Author: Kristján Valur <krist...@rvx.is>
Date:   Tue Mar 12 09:33:15 2019 +0000

    make some auth functions return an NTSTATUS like other similar functions 
for better diagnostics.
    
    Signed-off-by: Kristján Valur <krist...@rvx.is>
    Reviewed-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abart...@samba.org>
    Autobuild-Date(master): Tue Apr  2 02:12:48 UTC 2019 on sn-devel-144

commit 959a4837b54a4c504930fecaa0648ae4e586577b
Author: Mathieu Parent <math.par...@gmail.com>
Date:   Mon Mar 25 15:22:55 2019 +0100

    Spelling fixes s/verson/version/
    
    Signed-off-by: Mathieu Parent <math.par...@gmail.com>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Martin Schwenke <mar...@meltin.net>

commit 882d8a5bf416b6574daa8dafa145740fa6b10d6d
Author: Mathieu Parent <math.par...@gmail.com>
Date:   Mon Mar 25 15:22:49 2019 +0100

    Spelling fixes s/conficts/conflicts/
    
    Signed-off-by: Mathieu Parent <math.par...@gmail.com>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Martin Schwenke <mar...@meltin.net>

commit 6064543d64e1694f44d583a69a6ee105a3c1c922
Author: Mathieu Parent <math.par...@gmail.com>
Date:   Mon Mar 25 15:20:44 2019 +0100

    Spelling fixes s/overrided/overridden/
    
    Signed-off-by: Mathieu Parent <math.par...@gmail.com>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Martin Schwenke <mar...@meltin.net>

commit 720396f0fb499d587062d7b2ce7c3a62ee3b6dd3
Author: Mathieu Parent <math.par...@gmail.com>
Date:   Mon Mar 25 15:02:45 2019 +0100

    Spelling fix s/informations/information/
    
    Signed-off-by: Mathieu Parent <math.par...@gmail.com>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>
    Reviewed-by: Martin Schwenke <mar...@meltin.net>

commit 2044ca0e20bd3180720a82506b3af041d14b5c68
Author: Guenther Deschner <g...@samba.org>
Date:   Mon Apr 1 17:40:03 2019 +0200

    s3:ldap: Leave add machine code early for pre-existing accounts
    
    This avoids numerous LDAP constraint violation errors when we try to
    re-precreate an already existing machine account.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Pair-Programmed-With: Andreas Schneider <a...@samba.org>
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit c016afc832543514ebf7ecda1fbe6b272ea533d6
Author: Andreas Schneider <a...@samba.org>
Date:   Mon Apr 1 16:47:26 2019 +0200

    s3:libads: Make sure we can lookup KDCs which are not configured
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Pair-Programmed-With: Guenther Deschner <g...@samba.org>
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit b7f0c64514a28cfb5d2cdee683c18943b97ea753
Author: Andreas Schneider <a...@samba.org>
Date:   Mon Apr 1 16:39:45 2019 +0200

    s3:libnet: Use more secure name for the JOIN krb5.conf
    
    Currently we create krb5.conf..JOIN, use krb5.conf._JOIN_ instead.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 5c7f0a6902cfdd698e5f4159d37537bb4c9c1cc3
Author: Andreas Schneider <a...@samba.org>
Date:   Mon Apr 1 15:59:10 2019 +0200

    auth:creds: Prefer the principal over DOMAIN/username when using NTLM
    
    If we want to authenticate using -Wadmin@otherdomain the DC should do
    take care of the authentication with the right DC for us.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Pair-Programmed-With: Guenther Deschner <g...@samba.org>
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 9e92654899db3c951bee0203415a15737402e7b7
Author: Guenther Deschner <g...@samba.org>
Date:   Wed Mar 27 17:51:04 2019 +0100

    auth:ntlmssp: Add back CRAP ndr debug output
    
    This got lost somehow during refactoring. This is still viable
    information when trying to figure out what is going wrong when
    authenticating a user over NTLMSSP.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 3a33c360071bb7cada58f1f71ccd8949fda70662
Author: Guenther Deschner <g...@samba.org>
Date:   Mon Apr 1 17:46:39 2019 +0200

    s3:libnet: Fix debug message in libnet_DomainJoin()
    
    A newline is missing but also use DBG_INFO macro and cleanup spelling.
    
    Signed-off-by: Guenther Deschner <g...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 011a47f04dabe22095a30d284662d8ca50463ee8
Author: Andreas Schneider <a...@samba.org>
Date:   Wed Mar 27 16:45:39 2019 +0100

    s3:libsmb: Add some useful debug output to cliconnect
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

commit 40669e3739eb5cde135c371e2c8134d3f11a16a5
Author: Andreas Schneider <a...@samba.org>
Date:   Fri Mar 29 11:34:53 2019 +0100

    s3:libads: Print more information when LDAP fails
    
    Currently we just get an error but don't know what exactly we tried to
    do in 'net ads join -d10'.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=13861
    
    Signed-off-by: Andreas Schneider <a...@samba.org>
    Reviewed-by: Ralph Boehme <s...@samba.org>
    Reviewed-by: Andrew Bartlett <abart...@samba.org>

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

Summary of changes:
 auth/credentials/credentials.c                     |  2 +-
 auth/ntlmssp/ntlmssp_client.c                      | 32 ++++++++++
 lib/ldb/ldb_key_value/ldb_kv_cache.c               |  2 +-
 lib/ldb/ldb_key_value/ldb_kv_index.c               |  4 +-
 lib/ldb/man/ldbadd.1.xml                           |  2 +-
 lib/ldb/man/ldbdel.1.xml                           |  2 +-
 lib/ldb/man/ldbmodify.1.xml                        |  2 +-
 lib/ldb/man/ldbrename.1.xml                        |  2 +-
 lib/ldb/man/ldbsearch.1.xml                        |  2 +-
 lib/ldb/tests/ldb_mod_op_test.c                    |  4 +-
 lib/talloc/man/talloc.3.xml                        |  2 +-
 lib/talloc/talloc.h                                |  4 +-
 lib/talloc/talloc_guide.txt                        |  4 +-
 libgpo/gpo_ldap.c                                  | 11 ++--
 python/samba/netcmd/common.py                      |  2 +-
 python/samba/netcmd/domain.py                      |  2 +-
 python/samba/samdb.py                              |  4 +-
 python/samba/tests/posixacl.py                     |  2 +-
 source3/auth/proto.h                               |  7 ++-
 source3/auth/token_util.c                          | 73 ++++++++++++----------
 source3/libads/kerberos.c                          | 12 +++-
 source3/libads/ldap.c                              | 22 ++++++-
 source3/libnet/libnet_join.c                       | 12 ++--
 source3/libsmb/cliconnect.c                        | 13 ++++
 source3/rpc_server/svcctl/srv_svcctl_nt.c          |  6 +-
 source4/dsdb/tests/python/dirsync.py               |  4 +-
 source4/dsdb/tests/python/password_lockout_base.py |  4 +-
 source4/dsdb/tests/python/passwords.py             |  2 +-
 source4/dsdb/tests/python/rodc_rwdc.py             |  4 +-
 source4/dsdb/tests/python/sam.py                   |  2 +-
 .../selftest/provisions/alpha13/private/named.txt  |  2 +-
 .../provisions/release-4-1-0rc3/private/named.txt  |  2 +-
 source4/setup/named.txt                            |  2 +-
 33 files changed, 169 insertions(+), 83 deletions(-)


Changeset truncated at 500 lines:

diff --git a/auth/credentials/credentials.c b/auth/credentials/credentials.c
index 4663185c979..7ef58d0752c 100644
--- a/auth/credentials/credentials.c
+++ b/auth/credentials/credentials.c
@@ -1115,7 +1115,7 @@ _PUBLIC_ void 
cli_credentials_get_ntlm_username_domain(struct cli_credentials *c
                                              const char **username, 
                                              const char **domain) 
 {
-       if (cred->principal_obtained > cred->username_obtained) {
+       if (cred->principal_obtained >= cred->username_obtained) {
                *domain = talloc_strdup(mem_ctx, "");
                *username = cli_credentials_get_principal(cred, mem_ctx);
        } else {
diff --git a/auth/ntlmssp/ntlmssp_client.c b/auth/ntlmssp/ntlmssp_client.c
index ab406a2c5be..8e49dcee5ea 100644
--- a/auth/ntlmssp/ntlmssp_client.c
+++ b/auth/ntlmssp/ntlmssp_client.c
@@ -342,6 +342,22 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security 
*gensec_security,
                }
        }
 
+       if (DEBUGLEVEL >= 10) {
+               struct CHALLENGE_MESSAGE *challenge =
+                       talloc(ntlmssp_state, struct CHALLENGE_MESSAGE);
+               if (challenge != NULL) {
+                       NTSTATUS status;
+                       challenge->NegotiateFlags = chal_flags;
+                       status = ntlmssp_pull_CHALLENGE_MESSAGE(
+                                       &in, challenge, challenge);
+                       if (NT_STATUS_IS_OK(status)) {
+                               NDR_PRINT_DEBUG(CHALLENGE_MESSAGE,
+                                               challenge);
+                       }
+                       TALLOC_FREE(challenge);
+               }
+       }
+
        if (chal_flags & NTLMSSP_TARGET_TYPE_SERVER) {
                ntlmssp_state->server.is_standalone = true;
        } else {
@@ -702,6 +718,22 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security 
*gensec_security,
                return nt_status;
        }
 
+       if (DEBUGLEVEL >= 10) {
+               struct AUTHENTICATE_MESSAGE *authenticate =
+                       talloc(ntlmssp_state, struct AUTHENTICATE_MESSAGE);
+               if (authenticate != NULL) {
+                       NTSTATUS status;
+                       authenticate->NegotiateFlags = ntlmssp_state->neg_flags;
+                       status = ntlmssp_pull_AUTHENTICATE_MESSAGE(
+                               out, authenticate, authenticate);
+                       if (NT_STATUS_IS_OK(status)) {
+                               NDR_PRINT_DEBUG(AUTHENTICATE_MESSAGE,
+                                               authenticate);
+                       }
+                       TALLOC_FREE(authenticate);
+               }
+       }
+
        /*
         * We always include the MIC, even without:
         * av_flags->Value.AvFlags |= 
NTLMSSP_AVFLAG_MIC_IN_AUTHENTICATE_MESSAGE;
diff --git a/lib/ldb/ldb_key_value/ldb_kv_cache.c 
b/lib/ldb/ldb_key_value/ldb_kv_cache.c
index c39273fb097..bcffc05b99f 100644
--- a/lib/ldb/ldb_key_value/ldb_kv_cache.c
+++ b/lib/ldb/ldb_key_value/ldb_kv_cache.c
@@ -302,7 +302,7 @@ static int ldb_kv_index_load(struct ldb_module *module,
        if (lmdb_subdb_version != 0) {
                ldb_set_errstring(ldb,
                                  "FATAL: This ldb_mdb database has "
-                                 "been written in a new verson of LDB "
+                                 "been written in a new version of LDB "
                                  "using a sub-database index that "
                                  "is not understood by ldb "
                                  LDB_VERSION);
diff --git a/lib/ldb/ldb_key_value/ldb_kv_index.c 
b/lib/ldb/ldb_key_value/ldb_kv_index.c
index 6d02c91a597..4dfcc2cb0ba 100644
--- a/lib/ldb/ldb_key_value/ldb_kv_index.c
+++ b/lib/ldb/ldb_key_value/ldb_kv_index.c
@@ -2318,7 +2318,7 @@ static int ldb_kv_index_add1(struct ldb_module *module,
                        ldb_debug(ldb, LDB_DEBUG_WARNING,
                                  __location__
                                  ": unique index violation on %s in %s, "
-                                 "conficts with %*.*s in %s",
+                                 "conflicts with %*.*s in %s",
                                  el->name, ldb_dn_get_linearized(msg->dn),
                                  (int)list->dn[0].length,
                                  (int)list->dn[0].length,
@@ -2337,7 +2337,7 @@ static int ldb_kv_index_add1(struct ldb_module *module,
                                          LDB_DEBUG_WARNING,
                                          __location__
                                          ": unique index violation on %s in "
-                                         "%s, conficts with %s %*.*s in %s",
+                                         "%s, conflicts with %s %*.*s in %s",
                                          el->name,
                                          ldb_dn_get_linearized(msg->dn),
                                          ldb_kv->cache->GUID_index_attribute,
diff --git a/lib/ldb/man/ldbadd.1.xml b/lib/ldb/man/ldbadd.1.xml
index db360a1ec9a..4736b3bd11d 100644
--- a/lib/ldb/man/ldbadd.1.xml
+++ b/lib/ldb/man/ldbadd.1.xml
@@ -68,7 +68,7 @@
 
        <variablelist>
                <varlistentry><term>LDB_URL</term>
-                       <listitem><para>LDB URL to connect to (can be overrided 
by using the 
+                       <listitem><para>LDB URL to connect to (can be 
overridden by using the 
                                        -H command-line 
option.)</para></listitem>
                </varlistentry>
        </variablelist>
diff --git a/lib/ldb/man/ldbdel.1.xml b/lib/ldb/man/ldbdel.1.xml
index 18bef3cd0b7..c4cd450f83e 100644
--- a/lib/ldb/man/ldbdel.1.xml
+++ b/lib/ldb/man/ldbdel.1.xml
@@ -66,7 +66,7 @@
 
        <variablelist>
                <varlistentry><term>LDB_URL</term>
-                       <listitem><para>LDB URL to connect to (can be overrided 
by using the 
+                       <listitem><para>LDB URL to connect to (can be 
overridden by using the 
                                        -H command-line 
option.)</para></listitem>
                </varlistentry>
        </variablelist>
diff --git a/lib/ldb/man/ldbmodify.1.xml b/lib/ldb/man/ldbmodify.1.xml
index 405e47a1e9f..ddeeee7c0a4 100644
--- a/lib/ldb/man/ldbmodify.1.xml
+++ b/lib/ldb/man/ldbmodify.1.xml
@@ -56,7 +56,7 @@
 
        <variablelist>
                <varlistentry><term>LDB_URL</term>
-                       <listitem><para>LDB URL to connect to (can be overrided 
by using the 
+                       <listitem><para>LDB URL to connect to (can be 
overridden by using the 
                                        -H command-line 
option.)</para></listitem>
                </varlistentry>
        </variablelist>
diff --git a/lib/ldb/man/ldbrename.1.xml b/lib/ldb/man/ldbrename.1.xml
index 81472a66457..897c40e2788 100644
--- a/lib/ldb/man/ldbrename.1.xml
+++ b/lib/ldb/man/ldbrename.1.xml
@@ -70,7 +70,7 @@
 
        <variablelist>
                <varlistentry><term>LDB_URL</term>
-                       <listitem><para>LDB URL to connect to (can be overrided 
by using the 
+                       <listitem><para>LDB URL to connect to (can be 
overridden by using the 
                                        -H command-line 
option.)</para></listitem>
                </varlistentry>
        </variablelist>
diff --git a/lib/ldb/man/ldbsearch.1.xml b/lib/ldb/man/ldbsearch.1.xml
index abf369d00e1..b85399272be 100644
--- a/lib/ldb/man/ldbsearch.1.xml
+++ b/lib/ldb/man/ldbsearch.1.xml
@@ -82,7 +82,7 @@
 
        <variablelist>
                <varlistentry><term>LDB_URL</term>
-                       <listitem><para>LDB URL to connect to (can be overrided 
by using the 
+                       <listitem><para>LDB URL to connect to (can be 
overridden by using the 
                                        -H command-line 
option.)</para></listitem>
                </varlistentry>
        </variablelist>
diff --git a/lib/ldb/tests/ldb_mod_op_test.c b/lib/ldb/tests/ldb_mod_op_test.c
index 52e7e90e60a..0e91c6db282 100644
--- a/lib/ldb/tests/ldb_mod_op_test.c
+++ b/lib/ldb/tests/ldb_mod_op_test.c
@@ -3807,7 +3807,7 @@ static void test_ldb_unique_index_duplicate_logging(void 
**state)
        p = strstr(
                debug_string,
                "unique index violation on cn "
-               "in dc=test02, conficts with dc=test01 in "
+               "in dc=test02, conflicts with dc=test01 in "
                "@INDEX:CN:test_unique_index");
        assert_non_null(p);
        TALLOC_FREE(debug_string);
@@ -3991,7 +3991,7 @@ static void 
test_ldb_unique_index_duplicate_with_guid(void **state)
        assert_non_null(debug_string);
        p = strstr(
                debug_string,
-               "unique index violation on cn in dc=test02, conficts with "
+               "unique index violation on cn in dc=test02, conflicts with "
                "objectUUID 0123456789abcdef in @INDEX:CN:test_unique_index");
        assert_non_null(p);
        TALLOC_FREE(debug_string);
diff --git a/lib/talloc/man/talloc.3.xml b/lib/talloc/man/talloc.3.xml
index 6139fe73825..c51061fce1f 100644
--- a/lib/talloc/man/talloc.3.xml
+++ b/lib/talloc/man/talloc.3.xml
@@ -199,7 +199,7 @@
             <para>
              you can talloc_free() the pointer itself if it has at maximum one
              parent. This behaviour has been changed since the release of 
version
-             2.0. Further informations in the description of "talloc_free".
+             2.0. Further information in the description of "talloc_free".
             </para>
           </listitem>
         </itemizedlist>
diff --git a/lib/talloc/talloc.h b/lib/talloc/talloc.h
index 5240f1e8dda..34fe772d2df 100644
--- a/lib/talloc/talloc.h
+++ b/lib/talloc/talloc.h
@@ -966,7 +966,7 @@ size_t talloc_reference_count(const void *ptr);
  *
  * - you can talloc_free() the pointer itself if it has at maximum one
  *   parent. This behaviour has been changed since the release of version
- *   2.0. Further informations in the description of "talloc_free".
+ *   2.0. Further information in the description of "talloc_free".
  *
  * For more control on which parent to remove, see talloc_unlink()
  * @param[in]  ctx      The additional parent.
@@ -1007,7 +1007,7 @@ void *_talloc_reference_loc(const void *context, const 
void *ptr, const char *lo
  *
  * You can just use talloc_free() instead of talloc_unlink() if there
  * is at maximum one parent. This behaviour has been changed since the
- * release of version 2.0. Further informations in the description of
+ * release of version 2.0. Further information in the description of
  * "talloc_free".
  *
  * @param[in]  context  The talloc parent to remove.
diff --git a/lib/talloc/talloc_guide.txt b/lib/talloc/talloc_guide.txt
index aba285e72df..dedda6c0678 100644
--- a/lib/talloc/talloc_guide.txt
+++ b/lib/talloc/talloc_guide.txt
@@ -189,7 +189,7 @@ ways:
 
   - you can talloc_free() the pointer itself if it has at maximum one
     parent. This behaviour has been changed since the release of version
-    2.0. Further informations in the description of "talloc_free".
+    2.0. Further information in the description of "talloc_free".
 
 For more control on which parent to remove, see talloc_unlink()
 
@@ -207,7 +207,7 @@ is NULL, then the function will make no modifications and 
return -1.
 
 You can just use talloc_free() instead of talloc_unlink() if there
 is at maximum one parent. This behaviour has been changed since the
-release of version 2.0. Further informations in the description of
+release of version 2.0. Further information in the description of
 "talloc_free".
 
 =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
diff --git a/libgpo/gpo_ldap.c b/libgpo/gpo_ldap.c
index f087203f28a..e5a5adb7235 100644
--- a/libgpo/gpo_ldap.c
+++ b/libgpo/gpo_ldap.c
@@ -688,10 +688,13 @@ ADS_STATUS ads_get_sid_token(ADS_STRUCT *ads,
                }
        }
 
-       new_token = create_local_nt_token(mem_ctx, &object_sid, false,
-                                         num_token_sids, token_sids);
-       ADS_ERROR_HAVE_NO_MEMORY(new_token);
-
+       status = ADS_ERROR_NT(create_local_nt_token(mem_ctx, 
+                                         &object_sid, false,
+                                         num_token_sids, token_sids, 
&new_token));
+       if (!ADS_ERR_OK(status)) {
+               return status;
+       }
+       
        *token = new_token;
 
        security_token_debug(DBGC_CLASS, 5, *token);
diff --git a/python/samba/netcmd/common.py b/python/samba/netcmd/common.py
index c68cbabf42e..86f3e5161b1 100644
--- a/python/samba/netcmd/common.py
+++ b/python/samba/netcmd/common.py
@@ -63,7 +63,7 @@ def netcmd_finddc(lp, creds, realm=None):
 
 
 def netcmd_get_domain_infos_via_cldap(lp, creds, address=None):
-    '''Return domain informations (CLDAP record) of the ldap-capable
+    '''Return domain information (CLDAP record) of the ldap-capable
        DC with the specified address'''
     net = Net(creds=creds, lp=lp)
     cldap_ret = net.finddc(address=address,
diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py
index 2aebb5f8166..851e7241d15 100644
--- a/python/samba/netcmd/domain.py
+++ b/python/samba/netcmd/domain.py
@@ -1304,7 +1304,7 @@ class cmd_domain_passwordsettings_show(Command):
         except Exception as e:
             raise CommandError("Could not retrieve password properties!", e)
 
-        self.message("Password informations for domain '%s'" % domain_dn)
+        self.message("Password information for domain '%s'" % domain_dn)
         self.message("")
         if pwd_props & DOMAIN_PASSWORD_COMPLEX != 0:
             self.message("Password complexity: on")
diff --git a/python/samba/samdb.py b/python/samba/samdb.py
index 308b5f96a7b..eda31cb90c3 100644
--- a/python/samba/samdb.py
+++ b/python/samba/samdb.py
@@ -201,7 +201,7 @@ pwdLastSet: 0
         group_dn = "CN=%s,%s,%s" % (groupname, (groupou or "CN=Users"), 
self.domain_dn())
 
         # The new user record. Note the reliance on the SAMLDB module which
-        # fills in the default informations
+        # fills in the default information
         ldbmessage = {"dn": group_dn,
                       "sAMAccountName": groupname,
                       "objectClass": "group"}
@@ -389,7 +389,7 @@ member: %s
         dnsdomain = ldb.Dn(self, 
self.domain_dn()).canonical_str().replace("/", "")
         user_principal_name = "%s@%s" % (username, dnsdomain)
         # The new user record. Note the reliance on the SAMLDB module which
-        # fills in the default informations
+        # fills in the default information
         ldbmessage = {"dn": user_dn,
                       "sAMAccountName": username,
                       "userPrincipalName": user_principal_name,
diff --git a/python/samba/tests/posixacl.py b/python/samba/tests/posixacl.py
index a758df9b19e..65ca2c846f5 100644
--- a/python/samba/tests/posixacl.py
+++ b/python/samba/tests/posixacl.py
@@ -54,7 +54,7 @@ class PosixAclMappingTests(TestCaseInTempDir):
         Get session_info for setntacl.
 
         This test case always return None, to run tests without session_info
-        like before. To be overrided in derived class.
+        like before. To be overridden in derived class.
         """
         return None
 
diff --git a/source3/auth/proto.h b/source3/auth/proto.h
index 75cf1e6724f..a96ff6e2582 100644
--- a/source3/auth/proto.h
+++ b/source3/auth/proto.h
@@ -383,14 +383,15 @@ NTSTATUS pass_check(const struct passwd *pass,
 
 bool nt_token_check_sid ( const struct dom_sid *sid, const struct 
security_token *token );
 bool nt_token_check_domain_rid( struct security_token *token, uint32_t rid );
-struct security_token *get_root_nt_token( void );
+NTSTATUS get_root_nt_token( struct security_token **token );
 NTSTATUS add_aliases(const struct dom_sid *domain_sid,
                     struct security_token *token);
-struct security_token *create_local_nt_token(TALLOC_CTX *mem_ctx,
+NTSTATUS create_local_nt_token(TALLOC_CTX *mem_ctx,
                                            const struct dom_sid *user_sid,
                                            bool is_guest,
                                            int num_groupsids,
-                                           const struct dom_sid *groupsids);
+                                           const struct dom_sid *groupsids,
+                                           struct security_token **token);
 NTSTATUS finalize_local_nt_token(struct security_token *result,
                                 uint32_t session_info_flags);
 NTSTATUS get_user_sid_info3_and_extra(const struct netr_SamInfo3 *info3,
diff --git a/source3/auth/token_util.c b/source3/auth/token_util.c
index f7ebd23e4aa..3a3b5d9936b 100644
--- a/source3/auth/token_util.c
+++ b/source3/auth/token_util.c
@@ -78,27 +78,29 @@ bool nt_token_check_domain_rid( struct security_token 
*token, uint32_t rid )
  Create a copy if you need to change it.
 ******************************************************************************/
 
-struct security_token *get_root_nt_token( void )
+NTSTATUS get_root_nt_token( struct security_token **token )
 {
-       struct security_token *token, *for_cache;
+       struct security_token *for_cache;
        struct dom_sid u_sid, g_sid;
        struct passwd *pw;
        void *cache_data;
+       NTSTATUS status = NT_STATUS_OK;
 
        cache_data = memcache_lookup_talloc(
                NULL, SINGLETON_CACHE_TALLOC,
                data_blob_string_const_null("root_nt_token"));
 
        if (cache_data != NULL) {
-               return talloc_get_type_abort(
+               *token = talloc_get_type_abort(
                        cache_data, struct security_token);
+               return NT_STATUS_OK;
        }
 
        if ( !(pw = getpwuid(0)) ) {
                if ( !(pw = getpwnam("root")) ) {
-                       DEBUG(0,("get_root_nt_token: both getpwuid(0) "
-                               "and getpwnam(\"root\") failed!\n"));
-                       return NULL;
+                       DBG_ERR("get_root_nt_token: both getpwuid(0) "
+                               "and getpwnam(\"root\") failed!\n");
+                       return NT_STATUS_NO_SUCH_USER;
                }
        }
 
@@ -108,18 +110,21 @@ struct security_token *get_root_nt_token( void )
        uid_to_sid(&u_sid, pw->pw_uid);
        gid_to_sid(&g_sid, pw->pw_gid);
 
-       token = create_local_nt_token(talloc_tos(), &u_sid, False,
-                                     1, &global_sid_Builtin_Administrators);
+       status = create_local_nt_token(talloc_tos(), &u_sid, False,
+                                     1, &global_sid_Builtin_Administrators, 
token);
+       if (!NT_STATUS_IS_OK(status)) {
+               return status;
+       }
 
-       security_token_set_privilege(token, SEC_PRIV_DISK_OPERATOR);
+       security_token_set_privilege(*token, SEC_PRIV_DISK_OPERATOR);
 
-       for_cache = token;
+       for_cache = *token;
 
        memcache_add_talloc(
                NULL, SINGLETON_CACHE_TALLOC,
                data_blob_string_const_null("root_nt_token"), &for_cache);
 
-       return token;
+       return status;
 }
 
 
@@ -420,11 +425,12 @@ NTSTATUS create_local_nt_token_from_info3(TALLOC_CTX 
*mem_ctx,
  Create a NT token for the user, expanding local aliases
 *******************************************************************/
 
-struct security_token *create_local_nt_token(TALLOC_CTX *mem_ctx,
+NTSTATUS create_local_nt_token(TALLOC_CTX *mem_ctx,
                                            const struct dom_sid *user_sid,
                                            bool is_guest,
                                            int num_groupsids,
-                                           const struct dom_sid *groupsids)
+                                           const struct dom_sid *groupsids,
+                                           struct security_token **token)
 {
        struct security_token *result = NULL;
        int i;
@@ -437,7 +443,8 @@ struct security_token *create_local_nt_token(TALLOC_CTX 
*mem_ctx,
 
        if (!(result = talloc_zero(mem_ctx, struct security_token))) {
                DEBUG(0, ("talloc failed\n"));
-               return NULL;
+               status = NT_STATUS_NO_MEMORY;
+               goto err;
        }
 
        /* Add the user and primary group sid */
@@ -445,8 +452,7 @@ struct security_token *create_local_nt_token(TALLOC_CTX 
*mem_ctx,
        status = add_sid_to_array(result, user_sid,
                                  &result->sids, &result->num_sids);
        if (!NT_STATUS_IS_OK(status)) {
-               TALLOC_FREE(result);
-               return NULL;
+               goto err;
        }
 
        /* For guest, num_groupsids may be zero. */
@@ -455,8 +461,7 @@ struct security_token *create_local_nt_token(TALLOC_CTX 
*mem_ctx,
                                          &result->sids,
                                          &result->num_sids);
                if (!NT_STATUS_IS_OK(status)) {
-                       TALLOC_FREE(result);
-                       return NULL;
+                       goto err;
                }
        }
 
@@ -471,15 +476,13 @@ struct security_token *create_local_nt_token(TALLOC_CTX 
*mem_ctx,
                                                 &result->sids,
                                                 &result->num_sids);
                if (!NT_STATUS_IS_OK(status)) {
-                       TALLOC_FREE(result);
-                       return NULL;
+                       goto err;
                }
        }
 
        status = add_local_groups(result, is_guest);
        if (!NT_STATUS_IS_OK(status)) {
-               TALLOC_FREE(result);
-               return NULL;
+               goto err;
        }
 
        session_info_flags |= AUTH_SESSION_INFO_DEFAULT_GROUPS;
@@ -489,8 +492,7 @@ struct security_token *create_local_nt_token(TALLOC_CTX 
*mem_ctx,
 
        status = finalize_local_nt_token(result, session_info_flags);
        if (!NT_STATUS_IS_OK(status)) {
-               TALLOC_FREE(result);
-               return NULL;
+               goto err;
        }
 
        if (is_guest) {
@@ -511,12 +513,16 @@ struct security_token *create_local_nt_token(TALLOC_CTX 
*mem_ctx,
                                                 &result->num_sids);
                if (!NT_STATUS_IS_OK(status)) {
                        DEBUG(3, ("Failed to add SID to nt token\n"));
-                       TALLOC_FREE(result);
-                       return NULL;
+                       goto err;
                }
        }
 
-       return result;
+       *token = result;


-- 
Samba Shared Repository

Reply via email to