diff options
author | Eric Blake <eblake@redhat.com> | 2009-10-14 04:17:05 +0000 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2009-10-14 04:17:05 +0000 |
commit | 4cd31fc8f981c0287c9411e96a66520ce2568124 (patch) | |
tree | b16143b3517dab481b72d2b3c90c5a56e1cd0d14 | |
parent | e4ba1cf29eaef305f8c6edd3f374c85af464bbea (diff) | |
download | cygnal-4cd31fc8f981c0287c9411e96a66520ce2568124.tar.gz cygnal-4cd31fc8f981c0287c9411e96a66520ce2568124.tar.bz2 cygnal-4cd31fc8f981c0287c9411e96a66520ce2568124.zip |
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.
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/external.cc | 122 | ||||
-rw-r--r-- | winsup/cygwin/fork.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/libc/bsdlib.cc | 4 | ||||
-rw-r--r-- | winsup/cygwin/pinfo.cc | 4 | ||||
-rw-r--r-- | winsup/cygwin/strace.cc | 2 |
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); } } |