[SCM] Socket Wrapper Repository - branch master updated

Andreas Schneider asn at samba.org
Wed Jan 29 01:56:03 MST 2014


The branch, master has been updated
       via  81ece35 src: Fix va arg passing in open().
      from  bb4dd1f src: Handle stale fds in dup() and dup2().

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


- Log -----------------------------------------------------------------
commit 81ece3533fa99b48b428870042246fb8dfdf36ad
Author: Andreas Schneider <asn at samba.org>
Date:   Wed Jan 29 08:41:15 2014 +0100

    src: Fix va arg passing in open().
    
    Reviewed-by: Stefan Metzmacher <metze at samba.org>

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

Summary of changes:
 src/socket_wrapper.c |   22 +++++++++++++++-------
 1 files changed, 15 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 353a9a5..6e38f32 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -593,11 +593,18 @@ static int libc_listen(int sockfd, int backlog)
 	return swrap.fns.libc_listen(sockfd, backlog);
 }
 
-static int libc_open(const char *pathname, int flags, mode_t mode)
+static int libc_vopen(const char *pathname, int flags, va_list ap)
 {
+	long int mode = 0;
+	int fd;
+
 	swrap_load_lib_function(SWRAP_LIBC, open);
 
-	return swrap.fns.libc_open(pathname, flags, mode);
+	mode = va_arg(ap, long int);
+
+	fd = swrap.fns.libc_open(pathname, flags, (mode_t)mode);
+
+	return fd;
 }
 
 static int libc_pipe(int pipefd[2])
@@ -2630,11 +2637,11 @@ int listen(int s, int backlog)
  *   OPEN
  ***************************************************************************/
 
-static int swrap_open(const char *pathname, int flags, mode_t mode)
+static int swrap_vopen(const char *pathname, int flags, va_list ap)
 {
 	int ret;
 
-	ret = libc_open(pathname, flags, mode);
+	ret = libc_vopen(pathname, flags, ap);
 	if (ret != -1) {
 		/*
 		 * There are methods for closing descriptors (libc-internal code
@@ -2649,13 +2656,14 @@ static int swrap_open(const char *pathname, int flags, mode_t mode)
 
 int open(const char *pathname, int flags, ...)
 {
-	mode_t mode;
 	va_list ap;
+	int fd;
 
 	va_start(ap, flags);
-	mode = va_arg(ap, mode_t);
+	fd = swrap_vopen(pathname, flags, ap);
 	va_end(ap);
-	return swrap_open(pathname, flags, mode);
+
+	return fd;
 }
 
 /****************************************************************************


-- 
Socket Wrapper Repository


More information about the samba-cvs mailing list