[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Mon Oct 6 04:34:02 MDT 2014


The branch, master has been updated
       via  57bcb80 s3: lib, s3: modules: Fix compilation on Solaris.
       via  7366204 lib: uid_wrapper: Fix setgroups and syscall detection on a system without native uid_wrapper library.
      from  1584095 windbindd: Make cm_connect_lsa_tcp static

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


- Log -----------------------------------------------------------------
commit 57bcb8055eb3e15c4ce7bcdeeef7efed175ed347
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Oct 3 09:24:04 2014 -0700

    s3: lib, s3: modules: Fix compilation on Solaris.
    
    Based on work from YOUZHONG YANG <youzhong at gmail.com>.
    Code needs fixing when HAVE_STRUCT_MSGHDR_MSG_CONTROL is
    not defined. Also Solaris doesn't have msg_flags field
    (which we set to zero anyway, so if we initialize
    the entire struct to zero, we never need to refer to it).
    
    https://bugzilla.samba.org/show_bug.cgi?id=10849
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Mon Oct  6 12:33:36 CEST 2014 on sn-devel-104

commit 7366204845fda07ee4a83a1a63875f643d0a5794
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Oct 3 17:18:34 2014 -0700

    lib: uid_wrapper: Fix setgroups and syscall detection on a system without native uid_wrapper library.
    
    Originally from youzhong at gmail.com.
    
    https://bugzilla.samba.org/show_bug.cgi?id=10851
    
    Signed-off-by: Jeremy Allison <jra at samba.org>
    Reviewed-by: Andreas Schneider <asn at samba.org>

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

Summary of changes:
 lib/uid_wrapper/wscript         |    7 +++++++
 source3/lib/unix_msg/unix_msg.c |   19 ++++++++++---------
 source3/modules/vfs_aio_fork.c  |    5 ++++-
 3 files changed, 21 insertions(+), 10 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/uid_wrapper/wscript b/lib/uid_wrapper/wscript
index 3e73e83..6b58595 100644
--- a/lib/uid_wrapper/wscript
+++ b/lib/uid_wrapper/wscript
@@ -49,6 +49,13 @@ def configure(conf):
             'HAVE_FUNCTION_ATTRIBUTE_FORMAT',
             addmain=False,
             msg='Checking for printf format validation support')
+	# Prototype checks
+	conf.CHECK_C_PROTOTYPE('setgroups',
+			'int setgroups(int ngroups, const gid_t *grouplist)',
+			define='HAVE_SETGROUPS_INT', headers='unistd.h sys/types.h')
+	conf.CHECK_C_PROTOTYPE('syscall',
+			'int syscall(int number, ...)',
+			define='HAVE_SYSCALL_INT', headers='unistd.h sys/syscall.h')
 
         # Create full path to uid_wrapper
         srcdir = os.path.realpath(conf.srcdir)
diff --git a/source3/lib/unix_msg/unix_msg.c b/source3/lib/unix_msg/unix_msg.c
index 4870068..00ac7f5 100644
--- a/source3/lib/unix_msg/unix_msg.c
+++ b/source3/lib/unix_msg/unix_msg.c
@@ -477,7 +477,7 @@ static int queue_msg(struct unix_dgram_send_queue *q,
 	struct unix_dgram_msg *msg;
 	ssize_t data_len;
 	uint8_t *data_buf;
-	size_t msglen;
+	size_t msglen = sizeof(struct unix_dgram_msg);
 	int i;
 	size_t tmp;
 	int ret = -1;
@@ -487,6 +487,13 @@ static int queue_msg(struct unix_dgram_send_queue *q,
 	size_t cmsg_len = CMSG_LEN(fds_size);
 	size_t cmsg_space = CMSG_SPACE(fds_size);
 	char *cmsg_buf;
+
+	/*
+	 * Note: No need to check for overflow here,
+	 * since cmsg will store <= INT8_MAX fds.
+	 */
+	msglen += cmsg_space;
+
 #endif /*  HAVE_STRUCT_MSGHDR_MSG_CONTROL */
 
 	if (num_fds > INT8_MAX) {
@@ -499,14 +506,6 @@ static int queue_msg(struct unix_dgram_send_queue *q,
 	}
 #endif
 
-	msglen = sizeof(struct unix_dgram_msg);
-
-	/*
-	 * Note: No need to check for overflow here,
-	 * since cmsg will store <= INT8_MAX fds.
-	 */
-	msglen += cmsg_space;
-
 	data_len = iov_buflen(iov, iovlen);
 	if (data_len == -1) {
 		return EINVAL;
@@ -593,7 +592,9 @@ static int queue_msg(struct unix_dgram_send_queue *q,
 	return 0;
 
 fail:
+#ifdef HAVE_STRUCT_MSGHDR_MSG_CONTROL
 	close_fd_array(fds_copy, num_fds);
+#endif
 	return ret;
 }
 
diff --git a/source3/modules/vfs_aio_fork.c b/source3/modules/vfs_aio_fork.c
index c1bded9..12e6f80 100644
--- a/source3/modules/vfs_aio_fork.c
+++ b/source3/modules/vfs_aio_fork.c
@@ -157,6 +157,7 @@ static ssize_t read_fd(int fd, void *ptr, size_t nbytes, int *recvfd)
 #ifndef HAVE_STRUCT_MSGHDR_MSG_CONTROL
 	int newfd;
 
+	ZERO_STRUCT(msg);
 	msg.msg_accrights = (caddr_t) &newfd;
 	msg.msg_accrightslen = sizeof(int);
 #else
@@ -167,13 +168,15 @@ static ssize_t read_fd(int fd, void *ptr, size_t nbytes, int *recvfd)
 	} control_un;
 	struct cmsghdr	*cmptr;
 
+	ZERO_STRUCT(msg);
+	ZERO_STRUCT(control_un);
+
 	msg.msg_control = control_un.control;
 	msg.msg_controllen = sizeof(control_un.control);
 #endif
 
 	msg.msg_name = NULL;
 	msg.msg_namelen = 0;
-	msg.msg_flags = 0;
 
 	iov[0].iov_base = (void *)ptr;
 	iov[0].iov_len = nbytes;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list