The branch, master has been updated
       via  dba9e63 Prevent a crash in Python modules that try to authenticate 
by ensuring we reject cases where credendials fields are not intialized.
       via  4e178ed s3-util: Compare the maximum allowed length of a NetBIOS 
name
      from  dcc657a selftest: Add assertion that we actually fix the 
replPropertyMetaData sort order

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


- Log -----------------------------------------------------------------
commit dba9e631bd1e1c7e00430b72f0c60b32ee4eeb33
Author: Richard Sharpe <rsha...@samba.org>
Date:   Mon Aug 24 20:26:42 2015 -0700

    Prevent a crash in Python modules that try to authenticate by ensuring we 
reject cases where credendials fields are not intialized.
    
    Signed-off-by: Richard Sharpe <rsha...@samba.org>
    Reviewed-by: Jeremy Allison <j...@samba.org>
    
    Autobuild-User(master): Jeremy Allison <j...@samba.org>
    Autobuild-Date(master): Tue Aug 25 21:45:18 CEST 2015 on sn-devel-104

commit 4e178ed498c594ffcd5592d0b792d47b064b9586
Author: Roel van Meer <r...@1afa.com>
Date:   Tue Aug 4 16:50:43 2015 +0200

    s3-util: Compare the maximum allowed length of a NetBIOS name
    
    This fixes a problem where is_myname() returns true if one of our names
    is a substring of the specified name.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=11427
    
    Reviewed-by: Jeremy Allison <j...@samba.org>
    Reviewed-by: Andreas Schneider <a...@samba.org>

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

Summary of changes:
 auth/ntlmssp/ntlmssp_client.c | 21 +++++++++++++++++++--
 source3/lib/util.c            |  2 +-
 2 files changed, 20 insertions(+), 3 deletions(-)


Changeset truncated at 500 lines:

diff --git a/auth/ntlmssp/ntlmssp_client.c b/auth/ntlmssp/ntlmssp_client.c
index d8531e4c..b22619b 100644
--- a/auth/ntlmssp/ntlmssp_client.c
+++ b/auth/ntlmssp/ntlmssp_client.c
@@ -147,7 +147,7 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security 
*gensec_security,
        DATA_BLOB encrypted_session_key = data_blob(NULL, 0);
        NTSTATUS nt_status;
        int flags = 0;
-       const char *user, *domain;
+       const char *user = NULL, *domain = NULL, *workstation = NULL;
 
        TALLOC_CTX *mem_ctx = talloc_new(out_mem_ctx);
        if (!mem_ctx) {
@@ -256,6 +256,23 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security 
*gensec_security,
        cli_credentials_get_ntlm_username_domain(gensec_security->credentials, 
mem_ctx,
                                                 &user, &domain);
 
+       workstation = 
cli_credentials_get_workstation(gensec_security->credentials);
+
+       if (user == NULL) {
+               DEBUG(10, ("User is NULL, returning INVALID_PARAMETER\n"));
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       if (domain == NULL) {
+               DEBUG(10, ("Domain is NULL, returning INVALID_PARAMETER\n"));
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
+       if (workstation == NULL) {
+               DEBUG(10, ("Workstation is NULL, returning 
INVALID_PARAMETER\n"));
+               return NT_STATUS_INVALID_PARAMETER;
+       }
+
        if (ntlmssp_state->neg_flags & NTLMSSP_NEGOTIATE_NTLM2) {
                flags |= CLI_CRED_NTLM2;
        }
@@ -337,7 +354,7 @@ NTSTATUS ntlmssp_client_challenge(struct gensec_security 
*gensec_security,
                       nt_response.data, nt_response.length,
                       domain,
                       user,
-                      
cli_credentials_get_workstation(gensec_security->credentials),
+                      workstation,
                       encrypted_session_key.data, encrypted_session_key.length,
                       ntlmssp_state->neg_flags);
        if (!NT_STATUS_IS_OK(nt_status)) {
diff --git a/source3/lib/util.c b/source3/lib/util.c
index 2fd2b6b..d38d53a 100644
--- a/source3/lib/util.c
+++ b/source3/lib/util.c
@@ -1198,7 +1198,7 @@ bool is_myname(const char *s)
        for (n=0; my_netbios_names(n); n++) {
                const char *nbt_name = my_netbios_names(n);
 
-               if (strncasecmp_m(nbt_name, s, strlen(nbt_name)) == 0) {
+               if (strncasecmp_m(nbt_name, s, MAX_NETBIOSNAME_LEN-1) == 0) {
                        ret=True;
                        break;
                }


-- 
Samba Shared Repository

Reply via email to