[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