cygwin_intenral va_arg bugs

Igor Pechtchanski pechtcha@cs.nyu.edu
Thu Nov 21 20:45:00 GMT 2002


Hi,
This patch fixes two bugs in va_arg handling in cygwin_internal.
	Igor

ChangeLog:
2002-11-21  Igor Pechtchanski <pechtcha@cs.nyu.edu>

	* external.cc: (cygwin_internal) Fix va_arg references.
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Water molecules expand as they grow warmer" (C) Popular Science, Oct'02, p.51

-------------- next part --------------
Index: winsup/cygwin/external.cc
===================================================================
RCS file: /cvs/src/src/winsup/cygwin/external.cc,v
retrieving revision 1.45
diff -u -p -r1.45 external.cc
--- winsup/cygwin/external.cc	30 Oct 2002 21:05:17 -0000	1.45
+++ winsup/cygwin/external.cc	22 Nov 2002 04:29:57 -0000
@@ -182,7 +182,7 @@ cygwin_internal (cygwin_getinfo_types t,
 	return (DWORD) fillout_pinfo (va_arg (arg, pid_t), 1);
 
       case CW_INIT_EXCEPTIONS:
-	init_exceptions ((exception_list *) arg);
+	init_exceptions (va_arg (arg, exception_list *));
 	return 0;
 
       case CW_GET_CYGDRIVE_INFO:
@@ -196,16 +196,15 @@ cygwin_internal (cygwin_getinfo_types t,
 
       case CW_SET_CYGWIN_REGISTRY_NAME:
 	{
-#	  define cr ((char *) arg)
+	  const char *cr = va_arg (arg, char *);
 	  if (check_null_empty_str_errno (cr))
 	    return (DWORD) NULL;
 	  cygheap->cygwin_regname = (char *) crealloc (cygheap->cygwin_regname,
 						       strlen (cr) + 1);
 	  strcpy (cygheap->cygwin_regname, cr);
+	}
       case CW_GET_CYGWIN_REGISTRY_NAME:
 	  return (DWORD) cygheap->cygwin_regname;
-#	  undef cr
-	}
 
       case CW_STRACE_TOGGLE:
 	{


More information about the Cygwin-patches mailing list