Commit Graph

4 Commits

Author SHA1 Message Date
Corinna Vinschen 3daedf267d Cygwin: document latest sys/cpuset.h fix
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-09-01 12:42:10 +02:00
Takashi Yano 44f73c5a62 Cygwin: Fix segfalt when too many command line args are specified.
Previously, the number of command line args was not checked for
cygwin process. Due to this, segmentation fault was caused if too
many command line args are specified.
https://cygwin.com/pipermail/cygwin/2023-August/254333.html

Since char *argv[argc + 1] is placed on the stack in dll_crt0_1(),
STATUS_STACK_OVERFLOW occurs if the stack does not have enough
space.

With this patch, char *argv[] is placed in heap instead of stack
and ARG_MAX is increased from 32000 to 2097152 which is default
value of Linux. The argument length is also compared with ARG_MAX
and spawnve() returns E2BIG if it is too long.

Reported-by: Ed Morton
Reviewed-by: Corinna Vinschen <corinna@vinschen.de>
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2023-08-29 00:17:30 +09:00
Corinna Vinschen 384e572f41 Cygwin: document disabling mknod/mkfifo on NFS
Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2023-08-25 14:50:48 +02:00
Takashi Yano 90d3b16d2b Cygwin: pty: Fix failure to clear switch_to_nat_pipe flag.
After the commit fbfea31dd9, switch_to_nat_pipe is not cleared
properly when non-cygwin app is terminated in the case where the
pseudo console is disabled. This is because get_winpid_to_hand_over()
sometimes returns PID of cygwin process even though it should return
only PID of non-cygwin process. This patch fixes the issue by adding
a new argument which requests only PID of non-cygwin process to
get_console_process_id().

Fixes: fbfea31dd9 ("Cygwin: pty: Avoid cutting the branch the pty master is sitting on.")
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
2023-08-19 14:53:10 +09:00