Differences between 20080215 and 20080219 diff -p -N -d -r -U2 winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/external.cc winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/external.cc --- winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/external.cc 2007-12-13 12:55:37.000000000 +0000 +++ winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/external.cc 2008-02-19 21:43:31.000000000 +0000 @@ -43,4 +43,5 @@ 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))) @@ -99,4 +100,5 @@ fillout_pinfo (pid_t pid, int winpid) ep.gid32 = p->gid; + ep.progname_long = ep_progname_long_buf; strcpy (ep.progname_long, p->progname); break; diff -p -N -d -r -U2 winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/fhandler.cc winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/fhandler.cc --- winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/fhandler.cc 2008-02-15 17:54:59.000000000 +0000 +++ winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/fhandler.cc 2008-02-19 21:43:31.000000000 +0000 @@ -1542,4 +1542,6 @@ int fhandler_base::fpathconf (int v) { + int ret; + switch (v) { @@ -1559,8 +1561,14 @@ fhandler_base::fpathconf (int v) case _PC_NAME_MAX: /* NAME_MAX is without trailing \0 */ - return pc.isdir () ? PATH_MAX - strlen (get_name ()) - 2 : NAME_MAX; + if (!pc.isdir ()) + return NAME_MAX; + ret = NT_MAX_PATH - strlen (get_name ()) - 2; + return ret < 0 ? 0 : ret > NAME_MAX ? NAME_MAX : ret; case _PC_PATH_MAX: /* PATH_MAX is with trailing \0 */ - return pc.isdir () ? PATH_MAX - strlen (get_name ()) - 1 : PATH_MAX; + if (!pc.isdir ()) + return PATH_MAX; + ret = NT_MAX_PATH - strlen (get_name ()) - 1; + return ret < 0 ? 0 : ret > PATH_MAX ? PATH_MAX : ret; case _PC_PIPE_BUF: if (pc.isdir () diff -p -N -d -r -U2 winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/include/sys/cygwin.h winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/include/sys/cygwin.h --- winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/include/sys/cygwin.h 2008-02-15 18:08:12.000000000 +0000 +++ winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/include/sys/cygwin.h 2008-02-19 21:43:31.000000000 +0000 @@ -267,5 +267,5 @@ struct external_pinfo /* Only available if version >= EXTERNAL_PINFO_VERSION_32_LP */ - char progname_long[PATH_MAX]; + char *progname_long; }; #endif /*__CYGWIN__*/ diff -p -N -d -r -U2 winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/sigproc.cc winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/sigproc.cc --- winsup-src-20080215/cygwin-snapshot-20080215-1/winsup/cygwin/sigproc.cc 2008-02-15 17:54:59.000000000 +0000 +++ winsup-src-20080219/cygwin-snapshot-20080219-1/winsup/cygwin/sigproc.cc 2008-02-19 21:43:31.000000000 +0000 @@ -664,5 +664,5 @@ sig_send (_pinfo *p, siginfo_t& si, _cyg pack.mask = &pending; else if (si.si_signo == __SIGFLUSH || si.si_signo > 0) - pack.mask = &_my_tls.sigmask; + pack.mask = tls ? &tls->sigmask : &_main_tls->sigmask; else pack.mask = NULL; @@ -674,5 +674,5 @@ sig_send (_pinfo *p, siginfo_t& si, _cyg pack.si.si_uid = myself->uid; pack.pid = myself->pid; - pack.tls = (_cygtls *) tls; + pack.tls = tls; if (wait_for_completion) {