Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Blake <eblake@redhat.com>2009-10-14 08:17:05 +0400
committerEric Blake <eblake@redhat.com>2009-10-14 08:17:05 +0400
commit4cd31fc8f981c0287c9411e96a66520ce2568124 (patch)
treeb16143b3517dab481b72d2b3c90c5a56e1cd0d14 /winsup/cygwin
parente4ba1cf29eaef305f8c6edd3f374c85af464bbea (diff)
Consistently use va_end.
* external.cc (cygwin_internal): Use va_end. * fork.cc (child_copy): Likewise. * libc/bsdlib.cc (warn, warnx, err, errx): Likewise. * pinfo.cc (commune_request): Likewise. * strace.cc (strace::prntf, strace_printf): Likewise.
Diffstat (limited to 'winsup/cygwin')
-rw-r--r--winsup/cygwin/ChangeLog8
-rw-r--r--winsup/cygwin/external.cc122
-rw-r--r--winsup/cygwin/fork.cc2
-rw-r--r--winsup/cygwin/libc/bsdlib.cc4
-rw-r--r--winsup/cygwin/pinfo.cc4
-rw-r--r--winsup/cygwin/strace.cc2
6 files changed, 98 insertions, 44 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 3431ea0f5..07bdb3744 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,11 @@
+2009-10-13 Eric Blake <ebb9@byu.net>
+
+ * external.cc (cygwin_internal): Use va_end.
+ * fork.cc (child_copy): Likewise.
+ * libc/bsdlib.cc (warn, warnx, err, errx): Likewise.
+ * pinfo.cc (commune_request): Likewise.
+ * strace.cc (strace::prntf, strace_printf): Likewise.
+
2009-10-13 Corinna Vinschen <corinna@vinschen.de>
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc
index d42971d2b..0b607f178 100644
--- a/winsup/cygwin/external.cc
+++ b/winsup/cygwin/external.cc
@@ -197,34 +197,42 @@ extern "C" unsigned long
cygwin_internal (cygwin_getinfo_types t, ...)
{
va_list arg;
+ unsigned long res = -1;
va_start (arg, t);
switch (t)
{
case CW_LOCK_PINFO:
- return 1;
+ res = 1;
+ break;
case CW_UNLOCK_PINFO:
- return 1;
+ res = 1;
+ break;
case CW_GETTHREADNAME:
- return (DWORD) cygthread::name (va_arg (arg, DWORD));
+ res = (DWORD) cygthread::name (va_arg (arg, DWORD));
+ break;
case CW_SETTHREADNAME:
{
set_errno (ENOSYS);
- return 0;
+ res = 0;
}
+ break;
case CW_GETPINFO:
- return (DWORD) fillout_pinfo (va_arg (arg, DWORD), 0);
+ res = (DWORD) fillout_pinfo (va_arg (arg, DWORD), 0);
+ break;
case CW_GETVERSIONINFO:
- return (DWORD) cygwin_version_strings;
+ res = (DWORD) cygwin_version_strings;
+ break;
case CW_READ_V1_MOUNT_TABLES:
set_errno (ENOSYS);
- return 1;
+ res = 1;
+ break;
case CW_USER_DATA:
/* This is a kludge to work around a version of _cygwin_common_crt0
@@ -232,25 +240,30 @@ cygwin_internal (cygwin_getinfo_types t, ...)
Hilarity ensues if the DLL is not loaded like while the process
is forking. */
__cygwin_user_data.cxx_malloc = &default_cygwin_cxx_malloc;
- return (DWORD) &__cygwin_user_data;
+ res = (DWORD) &__cygwin_user_data;
+ break;
case CW_PERFILE:
perfile_table = va_arg (arg, struct __cygwin_perfile *);
- return 0;
+ res = 0;
+ break;
case CW_GET_CYGDRIVE_PREFIXES:
{
char *user = va_arg (arg, char *);
char *system = va_arg (arg, char *);
- return get_cygdrive_info (user, system, NULL, NULL);
+ res = get_cygdrive_info (user, system, NULL, NULL);
}
+ break;
case CW_GETPINFO_FULL:
- return (DWORD) fillout_pinfo (va_arg (arg, pid_t), 1);
+ res = (DWORD) fillout_pinfo (va_arg (arg, pid_t), 1);
+ break;
case CW_INIT_EXCEPTIONS:
/* noop */ /* init_exceptions (va_arg (arg, exception_list *)); */
- return 0;
+ res = 0;
+ break;
case CW_GET_CYGDRIVE_INFO:
{
@@ -258,12 +271,14 @@ cygwin_internal (cygwin_getinfo_types t, ...)
char *system = va_arg (arg, char *);
char *user_flags = va_arg (arg, char *);
char *system_flags = va_arg (arg, char *);
- return get_cygdrive_info (user, system, user_flags, system_flags);
+ res = get_cygdrive_info (user, system, user_flags, system_flags);
}
+ break;
case CW_SET_CYGWIN_REGISTRY_NAME:
case CW_GET_CYGWIN_REGISTRY_NAME:
- return 0;
+ res = 0;
+ break;
case CW_STRACE_TOGGLE:
{
@@ -272,25 +287,28 @@ cygwin_internal (cygwin_getinfo_types t, ...)
if (p)
{
sig_send (p, __SIGSTRACE);
- return 0;
+ res = 0;
}
else
{
set_errno (ESRCH);
- return (DWORD) -1;
+ res = (DWORD) -1;
}
}
+ break;
case CW_STRACE_ACTIVE:
{
- return strace.active ();
+ res = strace.active ();
}
+ break;
case CW_CYGWIN_PID_TO_WINPID:
{
pinfo p (va_arg (arg, pid_t));
- return p ? p->dwProcessId : 0;
+ res = p ? p->dwProcessId : 0;
}
+ break;
case CW_EXTRACT_DOMAIN_AND_USER:
{
WCHAR nt_domain[MAX_DOMAIN_NAME_LEN + 1];
@@ -304,26 +322,30 @@ cygwin_internal (cygwin_getinfo_types t, ...)
sys_wcstombs (domain, MAX_DOMAIN_NAME_LEN + 1, nt_domain);
if (user)
sys_wcstombs (user, UNLEN + 1, nt_user);
- return 0;
+ res = 0;
}
+ break;
case CW_CMDLINE:
{
size_t n;
pid_t pid = va_arg (arg, pid_t);
pinfo p (pid);
- return (DWORD) p->cmdline (n);
+ res = (DWORD) p->cmdline (n);
}
+ break;
case CW_CHECK_NTSEC:
{
char *filename = va_arg (arg, char *);
- return check_ntsec (filename);
+ res = check_ntsec (filename);
}
+ break;
case CW_GET_ERRNO_FROM_WINERROR:
{
int error = va_arg (arg, int);
int deferrno = va_arg (arg, int);
- return geterrno_from_win_error (error, deferrno);
+ res = geterrno_from_win_error (error, deferrno);
}
+ break;
case CW_GET_POSIX_SECURITY_ATTRIBUTE:
{
path_conv dummy;
@@ -334,24 +356,31 @@ cygwin_internal (cygwin_getinfo_types t, ...)
DWORD sd_buf_size = va_arg (arg, DWORD);
set_security_attribute (dummy, attribute, psa, sd);
if (!psa->lpSecurityDescriptor)
- return sd.size ();
- psa->lpSecurityDescriptor = sd_buf;
- return sd.copy (sd_buf, sd_buf_size);
+ res = sd.size ();
+ else
+ {
+ psa->lpSecurityDescriptor = sd_buf;
+ res = sd.copy (sd_buf, sd_buf_size);
+ }
}
+ break;
case CW_GET_SHMLBA:
{
- return getpagesize ();
+ res = getpagesize ();
}
+ break;
case CW_GET_UID_FROM_SID:
{
cygpsid psid = va_arg (arg, PSID);
- return psid.get_id (false, NULL);
+ res = psid.get_id (false, NULL);
}
+ break;
case CW_GET_GID_FROM_SID:
{
cygpsid psid = va_arg (arg, PSID);
- return psid.get_id (true, NULL);
+ res = psid.get_id (true, NULL);
}
+ break;
case CW_GET_BINMODE:
{
const char *path = va_arg (arg, const char *);
@@ -359,54 +388,62 @@ cygwin_internal (cygwin_getinfo_types t, ...)
if (p.error)
{
set_errno (p.error);
- return (unsigned long) -1;
+ res = (unsigned long) -1;
}
- return p.binmode ();
+ else
+ res = p.binmode ();
}
+ break;
case CW_HOOK:
{
const char *name = va_arg (arg, const char *);
const void *hookfn = va_arg (arg, const void *);
WORD subsys;
- return (unsigned long) hook_or_detect_cygwin (name, hookfn, subsys);
+ res = (unsigned long) hook_or_detect_cygwin (name, hookfn, subsys);
}
+ break;
case CW_ARGV:
{
child_info_spawn *ci = (child_info_spawn *) get_cygwin_startup_info ();
- return (unsigned long) (ci ? ci->moreinfo->argv : NULL);
+ res = (unsigned long) (ci ? ci->moreinfo->argv : NULL);
}
+ break;
case CW_ENVP:
{
child_info_spawn *ci = (child_info_spawn *) get_cygwin_startup_info ();
- return (unsigned long) (ci ? ci->moreinfo->envp : NULL);
+ res = (unsigned long) (ci ? ci->moreinfo->envp : NULL);
}
+ break;
case CW_DEBUG_SELF:
error_start_init (va_arg (arg, const char *));
try_to_debug ();
break;
case CW_SYNC_WINENV:
sync_winenv ();
- return 0;
+ res = 0;
+ break;
case CW_CYGTLS_PADSIZE:
- return CYGTLS_PADSIZE;
+ res = CYGTLS_PADSIZE;
+ break;
case CW_SET_DOS_FILE_WARNING:
{
extern bool dos_file_warning;
dos_file_warning = va_arg (arg, int);
- return 0;
+ res = 0;
}
break;
case CW_SET_PRIV_KEY:
{
const char *passwd = va_arg (arg, const char *);
- return setlsapwd (passwd);
+ res = setlsapwd (passwd);
}
+ break;
case CW_SETERRNO:
{
const char *file = va_arg (arg, const char *);
int line = va_arg (arg, int);
seterrno(file, line);
- return 0;
+ res = 0;
}
break;
case CW_EXIT_PROCESS:
@@ -420,12 +457,13 @@ cygwin_internal (cygwin_getinfo_types t, ...)
HANDLE token = va_arg (arg, HANDLE);
int type = va_arg (arg, int);
set_imp_token (token, type);
- return 0;
+ res = 0;
}
+ break;
default:
- break;
+ set_errno (ENOSYS);
}
- set_errno (ENOSYS);
- return (unsigned long) -1;
+ va_end (arg);
+ return res;
}
diff --git a/winsup/cygwin/fork.cc b/winsup/cygwin/fork.cc
index 49ff2e1ab..ac2e9ca5e 100644
--- a/winsup/cygwin/fork.cc
+++ b/winsup/cygwin/fork.cc
@@ -758,10 +758,12 @@ child_copy (HANDLE hp, bool write, ...)
}
}
+ va_end (args);
debug_printf ("done");
return true;
err:
+ va_end (args);
TerminateProcess (hp, 1);
set_errno (EAGAIN);
return false;
diff --git a/winsup/cygwin/libc/bsdlib.cc b/winsup/cygwin/libc/bsdlib.cc
index 92677d8ab..61797e43d 100644
--- a/winsup/cygwin/libc/bsdlib.cc
+++ b/winsup/cygwin/libc/bsdlib.cc
@@ -181,6 +181,7 @@ warn (const char *fmt, ...)
va_list ap;
va_start (ap, fmt);
vwarn (fmt, ap);
+ va_end (ap);
}
extern "C" void
@@ -189,6 +190,7 @@ warnx (const char *fmt, ...)
va_list ap;
va_start (ap, fmt);
vwarnx (fmt, ap);
+ va_end (ap);
}
extern "C" void
@@ -211,6 +213,7 @@ err (int eval, const char *fmt, ...)
va_list ap;
va_start (ap, fmt);
vwarn (fmt, ap);
+ va_end (ap);
exit (eval);
}
@@ -220,6 +223,7 @@ errx (int eval, const char *fmt, ...)
va_list ap;
va_start (ap, fmt);
vwarnx (fmt, ap);
+ va_end (ap);
exit (eval);
}
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index 0243ac851..cfbb4ee31 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -584,8 +584,6 @@ _pinfo::commune_request (__uint32_t code, ...)
HANDLE request_sync = NULL;
bool locked = false;
- va_start (args, code);
-
res.s = NULL;
res.n = 0;
@@ -595,6 +593,7 @@ _pinfo::commune_request (__uint32_t code, ...)
goto err;
}
+ va_start (args, code);
si._si_commune._si_code = code;
switch (code)
{
@@ -608,6 +607,7 @@ _pinfo::commune_request (__uint32_t code, ...)
break;
}
+ va_end (args);
locked = true;
char name_buf[MAX_PATH];
diff --git a/winsup/cygwin/strace.cc b/winsup/cygwin/strace.cc
index 04fb0eef6..fb62e29dc 100644
--- a/winsup/cygwin/strace.cc
+++ b/winsup/cygwin/strace.cc
@@ -274,6 +274,7 @@ strace::prntf (unsigned category, const char *func, const char *fmt, ...)
va_start (ap, fmt);
vprntf (category, func, fmt, ap);
+ va_end (ap);
}
extern "C" void
@@ -285,6 +286,7 @@ strace_printf (unsigned category, const char *func, const char *fmt, ...)
{
va_start (ap, fmt);
strace.vprntf (category, func, fmt, ap);
+ va_end (ap);
}
}