[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Fri Oct 21 22:29:04 UTC 2016


The branch, master has been updated
       via  92a0a56 vfs:glusterfs: preallocate result for glfs_realpath
       via  b9436f5 s3:util_cmdline: make struct user_auth_info private to util_cmdline.c
       via  30013ef s3:libsmb: make use of proper allocated struct user_auth_info in SMBC_opendir_ctx()
       via  87c3ff0 s3:libsmb: make use of get_cmdline_auth_info_* helper functions in get_ipc_connect()
       via  5cb394a s3:lib/netapi: make use of set_cmdline_auth_info_signing_state_raw()
       via  a0792eb s3:util_cmdline: add set_cmdline_auth_info_signing_state_raw() helper function
      from  ad60b8c s3: selftest: Add test for orphan 'lost-XXX' directories in streams_depot.

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


- Log -----------------------------------------------------------------
commit 92a0a56c3852726e0812d260e043957c879aefa4
Author: Michael Adam <obnox at samba.org>
Date:   Fri Oct 21 00:15:06 2016 +0200

    vfs:glusterfs: preallocate result for glfs_realpath
    
    This makes us independent of the allocation
    method used inside glfs_realpath.
    
    Signed-off-by: Michael Adam <obnox at samba.org>
    Reviewed-by: Ira Cooper <ira at samba.org>
    
    Autobuild-User(master): Jeremy Allison <jra at samba.org>
    Autobuild-Date(master): Sat Oct 22 00:28:41 CEST 2016 on sn-devel-144

commit b9436f5348213cc2a1b7fd670854bed4e21c5ea9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 21 10:23:21 2016 +0200

    s3:util_cmdline: make struct user_auth_info private to util_cmdline.c
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 30013efe39a736af6cc0143158c90401925ba48e
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 21 10:17:59 2016 +0200

    s3:libsmb: make use of proper allocated struct user_auth_info in SMBC_opendir_ctx()
    
    We should avoid to dereference struct user_auth_info.
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 87c3ff0f3bc2d7d162107ae65ec81ade36be6c66
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 21 10:17:59 2016 +0200

    s3:libsmb: make use of get_cmdline_auth_info_* helper functions in get_ipc_connect()
    
    We should avoid to dereference struct user_auth_info.
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit 5cb394a288722e8135ffad46e65725a3a6cfb2d9
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 21 10:17:04 2016 +0200

    s3:lib/netapi: make use of set_cmdline_auth_info_signing_state_raw()
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

commit a0792eba6c474f11ec8307c00d4e39ebf81e25da
Author: Stefan Metzmacher <metze at samba.org>
Date:   Fri Oct 21 10:16:26 2016 +0200

    s3:util_cmdline: add set_cmdline_auth_info_signing_state_raw() helper function
    
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Jeremy Allison <jra at samba.org>

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

Summary of changes:
 source3/include/auth_info.h     | 16 +++-------------
 source3/lib/netapi/cm.c         |  2 +-
 source3/lib/util_cmdline.c      | 20 ++++++++++++++++++++
 source3/libsmb/cliconnect.c     |  6 +++---
 source3/libsmb/libsmb_dir.c     | 17 ++++++-----------
 source3/modules/vfs_glusterfs.c | 15 ++++++++++++++-
 6 files changed, 47 insertions(+), 29 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/include/auth_info.h b/source3/include/auth_info.h
index d8d8317..04ac422 100644
--- a/source3/include/auth_info.h
+++ b/source3/include/auth_info.h
@@ -20,19 +20,7 @@
 #ifndef _AUTH_INFO_H
 #define _AUTH_INFO_H
 
-struct user_auth_info {
-	char *username;
-	char *domain;
-	char *password;
-	bool got_pass;
-	bool use_kerberos;
-	int signing_state;
-	bool smb_encrypt;
-	bool use_machine_account;
-	bool fallback_after_kerberos;
-	bool use_ccache;
-	bool use_pw_nt_hash;
-};
+struct user_auth_info;
 
 struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx);
 const char *get_cmdline_auth_info_username(const struct user_auth_info *auth_info);
@@ -46,6 +34,8 @@ void set_cmdline_auth_info_password(struct user_auth_info *auth_info,
 const char *get_cmdline_auth_info_password(const struct user_auth_info *auth_info);
 bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info,
 					 const char *arg);
+void set_cmdline_auth_info_signing_state_raw(struct user_auth_info *auth_info,
+					     int signing_state);
 int get_cmdline_auth_info_signing_state(const struct user_auth_info *auth_info);
 void set_cmdline_auth_info_use_ccache(struct user_auth_info *auth_info,
 				      bool b);
diff --git a/source3/lib/netapi/cm.c b/source3/lib/netapi/cm.c
index 7e16b4d..2649422 100644
--- a/source3/lib/netapi/cm.c
+++ b/source3/lib/netapi/cm.c
@@ -88,7 +88,7 @@ static WERROR libnetapi_open_ipc_connection(struct libnetapi_ctx *ctx,
 	if (!auth_info) {
 		return WERR_NOT_ENOUGH_MEMORY;
 	}
-	auth_info->signing_state = SMB_SIGNING_IPC_DEFAULT;
+	set_cmdline_auth_info_signing_state_raw(auth_info, SMB_SIGNING_IPC_DEFAULT);
 	set_cmdline_auth_info_use_kerberos(auth_info, ctx->use_kerberos);
 	set_cmdline_auth_info_username(auth_info, ctx->username);
 	if (ctx->password) {
diff --git a/source3/lib/util_cmdline.c b/source3/lib/util_cmdline.c
index 3ef1d09..68ba7aa 100644
--- a/source3/lib/util_cmdline.c
+++ b/source3/lib/util_cmdline.c
@@ -30,6 +30,20 @@
   Used mainly in client tools.
 ****************************************************************************/
 
+struct user_auth_info {
+	char *username;
+	char *domain;
+	char *password;
+	bool got_pass;
+	bool use_kerberos;
+	int signing_state;
+	bool smb_encrypt;
+	bool use_machine_account;
+	bool fallback_after_kerberos;
+	bool use_ccache;
+	bool use_pw_nt_hash;
+};
+
 struct user_auth_info *user_auth_info_init(TALLOC_CTX *mem_ctx)
 {
 	struct user_auth_info *result;
@@ -162,6 +176,12 @@ bool set_cmdline_auth_info_signing_state(struct user_auth_info *auth_info,
 	return true;
 }
 
+void set_cmdline_auth_info_signing_state_raw(struct user_auth_info *auth_info,
+					     int signing_state)
+{
+	auth_info->signing_state = signing_state;
+}
+
 int get_cmdline_auth_info_signing_state(const struct user_auth_info *auth_info)
 {
 	return auth_info->signing_state;
diff --git a/source3/libsmb/cliconnect.c b/source3/libsmb/cliconnect.c
index e6deb9d..e15f676 100644
--- a/source3/libsmb/cliconnect.c
+++ b/source3/libsmb/cliconnect.c
@@ -3673,14 +3673,14 @@ struct cli_state *get_ipc_connect(char *server,
 	NTSTATUS nt_status;
 	uint32_t flags = CLI_FULL_CONNECTION_ANONYMOUS_FALLBACK;
 
-	if (user_info->use_kerberos) {
+	if (get_cmdline_auth_info_use_kerberos(user_info)) {
 		flags |= CLI_FULL_CONNECTION_USE_KERBEROS;
 	}
 
 	nt_status = cli_full_connection(&cli, NULL, server, server_ss, 0, "IPC$", "IPC", 
-					user_info->username ? user_info->username : "",
+					get_cmdline_auth_info_username(user_info),
 					lp_workgroup(),
-					user_info->password ? user_info->password : "",
+					get_cmdline_auth_info_password(user_info),
 					flags,
 					SMB_SIGNING_DEFAULT);
 
diff --git a/source3/libsmb/libsmb_dir.c b/source3/libsmb/libsmb_dir.c
index 714a97c..dd37a24 100644
--- a/source3/libsmb/libsmb_dir.c
+++ b/source3/libsmb/libsmb_dir.c
@@ -464,7 +464,7 @@ SMBC_opendir_ctx(SMBCCTX *context,
                 int max_lmb_count;
                 struct sockaddr_storage *ip_list;
                 struct sockaddr_storage server_addr;
-                struct user_auth_info u_info;
+                struct user_auth_info *u_info;
 		NTSTATUS status;
 
 		if (share[0] != (char)0 || path[0] != (char)0) {
@@ -483,17 +483,12 @@ SMBC_opendir_ctx(SMBCCTX *context,
                                  ? INT_MAX
                                  : smbc_getOptionBrowseMaxLmbCount(context));
 
-		memset(&u_info, '\0', sizeof(u_info));
-		u_info.username = talloc_strdup(frame,user);
-		u_info.password = talloc_strdup(frame,password);
-		if (!u_info.username || !u_info.password) {
-			if (dir) {
-				SAFE_FREE(dir->fname);
-				SAFE_FREE(dir);
-			}
-			TALLOC_FREE(frame);
+		u_info = user_auth_info_init(frame);
+		if (u_info == NULL) {
 			return NULL;
 		}
+		set_cmdline_auth_info_username(u_info, user);
+		set_cmdline_auth_info_password(u_info, password);
 
 		/*
                  * We have server and share and path empty but options
@@ -550,7 +545,7 @@ SMBC_opendir_ctx(SMBCCTX *context,
 
                         cli = get_ipc_connect_master_ip(talloc_tos(),
 							&ip_list[i],
-                                                        &u_info,
+                                                        u_info,
 							&wg_ptr);
 			/* cli == NULL is the master browser refused to talk or
 			   could not be found */
diff --git a/source3/modules/vfs_glusterfs.c b/source3/modules/vfs_glusterfs.c
index 3e15ce6..1c9be2d 100644
--- a/source3/modules/vfs_glusterfs.c
+++ b/source3/modules/vfs_glusterfs.c
@@ -1140,7 +1140,20 @@ static int vfs_gluster_fallocate(struct vfs_handle_struct *handle,
 static char *vfs_gluster_realpath(struct vfs_handle_struct *handle,
 				  const char *path)
 {
-	return glfs_realpath(handle->data, path, 0);
+	char *result = NULL;
+	char *resolved_path = SMB_MALLOC_ARRAY(char, PATH_MAX+1);
+
+	if (resolved_path == NULL) {
+		errno = ENOMEM;
+		return NULL;
+	}
+
+	result = glfs_realpath(handle->data, path, resolved_path);
+	if (result == NULL) {
+		SAFE_FREE(resolved_path);
+	}
+
+	return result;
 }
 
 static bool vfs_gluster_lock(struct vfs_handle_struct *handle,


-- 
Samba Shared Repository



More information about the samba-cvs mailing list