[SCM] Samba Shared Repository - branch master updated

Andreas Schneider asn at samba.org
Fri May 9 03:37:04 MDT 2014


The branch, master has been updated
       via  98750aa swrap: Update version to 1.0.2.
       via  a05728d swrap: Fall back to RTLD_NEXT if we can't find libc.
       via  b003f1a Fix some typos.
       via  b08c50b swrap: Use the loaded libc open() directly.
       via  1f8fe83 swrap: Do not leak memory in swrap_recvmsg_after().
      from  0ba276e wafsamba: If perl can't provide defaults, define them.

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


- Log -----------------------------------------------------------------
commit 98750aae96ac0fbec767aafc5e274a06d1391fa4
Author: Andreas Schneider <asn at samba.org>
Date:   Thu May 8 14:07:36 2014 +0200

    swrap: Update version to 1.0.2.
    
    This makes sure we require version 1.0.2 of the system library.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Volker Lendecke <vl at samba.org>
    
    Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
    Autobuild-Date(master): Fri May  9 11:36:55 CEST 2014 on sn-devel-104

commit a05728df56c3bc8e07ac3e8b59309adc0e4fa33c
Author: Andreas Schneider <asn at samba.org>
Date:   Thu May 8 14:07:16 2014 +0200

    swrap: Fall back to RTLD_NEXT if we can't find libc.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10572
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit b003f1a453750d69b2f5d166fd865fda4463c79a
Author: Jakub Wilk <jwilk at jwilk.net>
Date:   Thu May 8 15:30:09 2014 +0200

    Fix some typos.
    
    BUG: https://bugzilla.samba.org/show_bug.cgi?id=10566
    
    Reviewed-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

commit b08c50b1da2c2ec3f41cc89cd9bdcf8f077a4205
Author: Andreas Schneider <asn at samba.org>
Date:   Thu May 8 14:05:30 2014 +0200

    swrap: Use the loaded libc open() directly.
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>

commit 1f8fe835b51773dc2236c428d2cde905127e4b09
Author: Andreas Schneider <asn at samba.org>
Date:   Thu May 8 14:04:11 2014 +0200

    swrap: Do not leak memory in swrap_recvmsg_after().
    
    Signed-off-by: Andreas Schneider <asn at samba.org>
    Reviewed-by: Jakub Hrozek <jhrozek at redhat.com>
    Reviewed-by: Simo Sorce <idra at samba.org>

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

Summary of changes:
 lib/socket_wrapper/socket_wrapper.c |   39 +++++++++++++++++++++++-----------
 lib/socket_wrapper/wscript          |    2 +-
 2 files changed, 27 insertions(+), 14 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c
index c5b1fdf..95643aa 100644
--- a/lib/socket_wrapper/socket_wrapper.c
+++ b/lib/socket_wrapper/socket_wrapper.c
@@ -393,10 +393,6 @@ static void *swrap_load_lib_handle(enum swrap_lib lib)
 	void *handle = NULL;
 	int i;
 
-#ifdef HAVE_APPLE
-	return RTLD_NEXT;
-#endif
-
 #ifdef RTLD_DEEPBIND
 	flags |= RTLD_DEEPBIND;
 #endif
@@ -436,10 +432,14 @@ static void *swrap_load_lib_handle(enum swrap_lib lib)
 	}
 
 	if (handle == NULL) {
+#ifdef RTLD_NEXT
+		handle = swrap.libc_handle = swrap.libsocket_handle = RTLD_NEXT;
+#else
 		SWRAP_LOG(SWRAP_LOG_ERROR,
 			  "Failed to dlopen library: %s\n",
 			  dlerror());
 		exit(-1);
+#endif
 	}
 
 	return handle;
@@ -476,7 +476,7 @@ static void *_swrap_load_lib_function(enum swrap_lib lib, const char *fn_name)
 /*
  * IMPORTANT
  *
- * Functions expeciall from libc need to be loaded individually, you can't load
+ * Functions especially from libc need to be loaded individually, you can't load
  * all at once or gdb will segfault at startup. The same applies to valgrind and
  * has probably something todo with with the linker.
  * So we need load each function at the point it is called the first time.
@@ -608,6 +608,18 @@ static int libc_vopen(const char *pathname, int flags, va_list ap)
 	return fd;
 }
 
+static int libc_open(const char *pathname, int flags, ...)
+{
+	va_list ap;
+	int fd;
+
+	va_start(ap, flags);
+	fd = libc_vopen(pathname, flags, ap);
+	va_end(ap);
+
+	return fd;
+}
+
 static int libc_pipe(int pipefd[2])
 {
 	swrap_load_lib_function(SWRAP_LIBSOCKET, pipe);
@@ -1589,7 +1601,7 @@ static uint8_t *swrap_packet_init(struct timeval *tval,
 		ip->v4.tos		= 0x00;
 		ip->v4.packet_length	= htons(wire_len - icmp_truncate_len);
 		ip->v4.identification	= htons(0xFFFF);
-		ip->v4.flags		= 0x40; /* BIT 1 set - means don't fraqment */
+		ip->v4.flags		= 0x40; /* BIT 1 set - means don't fragment */
 		ip->v4.fragment		= htons(0x0000);
 		ip->v4.ttl		= 0xFF;
 		ip->v4.protocol		= protocol;
@@ -1628,7 +1640,7 @@ static uint8_t *swrap_packet_init(struct timeval *tval,
 			ip->v4.tos		= 0x00;
 			ip->v4.packet_length	= htons(wire_len - icmp_hdr_len);
 			ip->v4.identification	= htons(0xFFFF);
-			ip->v4.flags		= 0x40; /* BIT 1 set - means don't fraqment */
+			ip->v4.flags		= 0x40; /* BIT 1 set - means don't fragment */
 			ip->v4.fragment		= htons(0x0000);
 			ip->v4.ttl		= 0xFF;
 			ip->v4.protocol		= icmp_protocol;
@@ -1707,7 +1719,7 @@ static int swrap_get_pcap_fd(const char *fname)
 
 	if (fd != -1) return fd;
 
-	fd = open(fname, O_WRONLY|O_CREAT|O_EXCL|O_APPEND, 0644);
+	fd = libc_open(fname, O_WRONLY|O_CREAT|O_EXCL|O_APPEND, 0644);
 	if (fd != -1) {
 		struct swrap_file_hdr file_hdr;
 		file_hdr.magic		= 0xA1B2C3D4;
@@ -1725,7 +1737,7 @@ static int swrap_get_pcap_fd(const char *fname)
 		return fd;
 	}
 
-	fd = open(fname, O_WRONLY|O_APPEND, 0644);
+	fd = libc_open(fname, O_WRONLY|O_APPEND, 0644);
 
 	return fd;
 }
@@ -2383,7 +2395,7 @@ static int autobind_start;
 
 /* using sendto() or connect() on an unbound socket would give the
    recipient no way to reply, as unlike UDP and TCP, a unix domain
-   socket can't auto-assign emphemeral port numbers, so we need to
+   socket can't auto-assign ephemeral port numbers, so we need to
    assign it here.
    Note: this might change the family from ipv6 to ipv4
 */
@@ -3155,7 +3167,7 @@ static int swrap_recvmsg_after(int fd,
 {
 	int saved_errno = errno;
 	size_t i;
-	uint8_t *buf;
+	uint8_t *buf = NULL;
 	off_t ofs = 0;
 	size_t avail = 0;
 	size_t remain;
@@ -3187,7 +3199,7 @@ static int swrap_recvmsg_after(int fd,
 
 	/* we capture it as one single packet */
 	buf = (uint8_t *)malloc(remain);
-	if (!buf) {
+	if (buf == NULL) {
 		/* we just not capture the packet */
 		errno = saved_errno;
 		return -1;
@@ -3228,7 +3240,7 @@ static int swrap_recvmsg_after(int fd,
 						      msg->msg_name,
 						      &msg->msg_namelen);
 			if (rc == -1) {
-				return -1;
+				goto done;
 			}
 
 			swrap_dump_packet(si,
@@ -3247,6 +3259,7 @@ static int swrap_recvmsg_after(int fd,
 		break;
 	}
 
+done:
 	free(buf);
 	errno = saved_errno;
 	return 0;
diff --git a/lib/socket_wrapper/wscript b/lib/socket_wrapper/wscript
index fb9481a..3615fa8 100644
--- a/lib/socket_wrapper/wscript
+++ b/lib/socket_wrapper/wscript
@@ -2,7 +2,7 @@
 
 import os
 
-VERSION="1.0.0"
+VERSION="1.0.2"
 
 def configure(conf):
     if conf.CHECK_BUNDLED_SYSTEM('socket_wrapper', minversion=VERSION, set_target=False):


-- 
Samba Shared Repository


More information about the samba-cvs mailing list