diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 8 | ||||
-rw-r--r-- | winsup/cygwin/external.cc | 2 | ||||
-rw-r--r-- | winsup/cygwin/include/sys/cygwin.h | 4 |
3 files changed, 10 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 4f3aa7b..948edce 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,7 +1,13 @@ 2008-02-15 Corinna Vinschen <corinna@vinschen.de> + * include/sys/cygwin.h (__INT_MAX_PATH): Remove. + (external_pinfo): Convert program_long to pointer. + * external.cc (fillout_pinfo): Add buffer for program_long value. + +2008-02-15 Corinna Vinschen <corinna@vinschen.de> + * include/sys/cygwin.h (__INT_MAX_PATH): Define to 32K. - (external_pinfo): Set size to __INT_MAX_PATH. + (external_pinfo): Set size of program_long to __INT_MAX_PATH. 2008-02-15 Christopher Faylor <me+cygwin@cgf.cx> diff --git a/winsup/cygwin/external.cc b/winsup/cygwin/external.cc index cc080d2..111bd31 100644 --- a/winsup/cygwin/external.cc +++ b/winsup/cygwin/external.cc @@ -42,6 +42,7 @@ fillout_pinfo (pid_t pid, int winpid) { BOOL nextpid; static external_pinfo ep; + static char ep_progname_long_buf[NT_MAX_PATH]; if ((nextpid = !!(pid & CW_NEXTPID))) pid ^= CW_NEXTPID; @@ -98,6 +99,7 @@ fillout_pinfo (pid_t pid, int winpid) ep.uid32 = p->uid; ep.gid32 = p->gid; + ep.progname_long = ep_progname_long_buf; strcpy (ep.progname_long, p->progname); break; } diff --git a/winsup/cygwin/include/sys/cygwin.h b/winsup/cygwin/include/sys/cygwin.h index e068d73..51247e5 100644 --- a/winsup/cygwin/include/sys/cygwin.h +++ b/winsup/cygwin/include/sys/cygwin.h @@ -237,8 +237,6 @@ typedef unsigned long __uid32_t; typedef unsigned long __gid32_t; #endif -#define __INT_MAX_PATH 32768 - struct external_pinfo { pid_t pid; @@ -268,7 +266,7 @@ struct external_pinfo __gid32_t gid32; /* Only available if version >= EXTERNAL_PINFO_VERSION_32_LP */ - char progname_long[__INT_MAX_PATH]; + char *progname_long; }; #endif /*__CYGWIN__*/ #endif /*WINVER*/ |