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

ChangeLog:
2002-11-21  Igor Pechtchanski <[EMAIL PROTECTED]>

        * external.cc: (cygwin_internal) Fix va_arg references.
-- 
                                http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_                [EMAIL PROTECTED]
ZZZzz /,`.-'`'    -.  ;-;;,_            [EMAIL PROTECTED]
     |,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

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:
        {

Reply via email to