cygdll 3.3.4 breaks cygpath.exe. mistyped commands result in fork bomb

matthew patton pattonme@yahoo.com
Fri Apr 29 18:59:05 GMT 2022


I've identified the proximate cause.
env CYGWIN_NOWINPATH=
With this variable set at all (0 or 1, doesn't matter) typing ''l' (that's el) spawns several hundred bash.exe and fork bombs. From a stable prompt, typing 'exit' spawns 80+ bash.exe and I have to use the X button to kill the window and the run-away bash.exe fork bomb.
With CYGWIN DLL v3.2.0 or earlier hitting Ctrl-C shuts down the fork bomb at the command-line - the processes self-reap. With v3.3.x family Ctrl-C gives me my command-line back but requires 'pkill -9 bash.exe' over and over till the rogue process count is reigned in. 
If I unset CYGWIN_NOWINPATH I obviously pollute my environment with DOS programs but typing 'l' (el) returns immediately with:
'l' is not recognized as an internal or external command,operable program or batch file.
Did someone stupidly delegate the search for executables to blindly call CMD.exe and since with NOWINPATH set CMD.exe can't be found so it just fork bombs?    On Friday, April 29, 2022, 02:25:38 PM EDT, matthew patton via Cygwin <cygwin@cygwin.com> wrote:  
 
  --- Process 25852 created--- Process 25852 loaded C:\Windows\System32\ntdll.dll at 00007fffa01b0000--- Process 25852 loaded C:\Windows\System32\kernel32.dll at 00007fff9eef0000--- Process 25852 loaded C:\Windows\System32\KernelBase.dll at 00007fff9db00000--- Process 25852 loaded C:\Program Files\SentinelOne\Sentinel Agent 21.7.4.1043\InProcessClient64.dll at 00007fff9d480000--- Process 25852 loaded C:\Windows\System32\advapi32.dll at 00007fff9f8a0000--- Process 25852 loaded C:\Windows\System32\msvcrt.dll at 00007fffa00d0000--- Process 25852 thread 20692 created--- Process 25852 loaded C:\Windows\System32\sechost.dll at 00007fff9edc0000--- Process 25852 loaded C:\Windows\System32\rpcrt4.dll at 00007fff9ff30000--- Process 25852 thread 25940 created--- Process 25852 thread 22408 created--- Process 25852 loaded C:\Windows\System32\shell32.dll at 00007fff9e210000--- Process 25852 loaded C:\Windows\System32\msvcp_win.dll at 00007fff9de60000--- Process 25852 loaded C:\cyg64\bin\cygwin1.dll at 0000000180040000--- Process 25852 loaded C:\Windows\System32\ucrtbase.dll at 00007fff9d980000--- Process 25852 loaded C:\Windows\System32\user32.dll at 00007fff9e9c0000--- Process 25852 loaded C:\Windows\System32\win32u.dll at 00007fff9e080000--- Process 25852 loaded C:\Windows\System32\gdi32.dll at 00007fff9ee60000--- Process 25852 loaded C:\Windows\System32\gdi32full.dll at 00007fff9df70000--- Process 25852 loaded C:\Windows\System32\userenv.dll at 00007fff9d790000--- Process 25852 loaded C:\Windows\System32\imm32.dll at 00007fff9eca0000

  327     329 [main] cygpath (25852) Program name: C:\cyg64\bin\cygpath.exe (windows pid 25852)  248     577 [main] cygpath (25852) OS version:   Windows NT-10.0  288     865 [main] cygpath (25852) **********************************************--- Process 25852 loaded C:\Windows\System32\cryptbase.dll at 00007fff9cef0000--- Process 25852 loaded C:\Windows\System32\bcryptprimitives.dll at 00007fff9ddd0000 5888    6753 [main] cygpath (25852) sigprocmask: 0 = sigprocmask (0, 0x0, 0x180321570)  735    7488 [main] cygpath (25852) open_shared: name shared.5, n 5, shared 0x180030000 (wanted 0x180030000), h 0x184, *m 6  210    7698 [main] cygpath (25852) user_heap_info::init: heap base 0x800000000, heap top 0x800000000, heap size 0x20000000 (536870912)  175    7873 [main] cygpath (25852) open_shared: name S-1-5-21-1343024091-839522115-1708537768-180174.1, n 1, shared 0x180020000 (wanted 0x180020000), h 0x180, *m 6  160    8033 [main] cygpath (25852) user_info::create: opening user shared for 'S-1-5-21-1343024091-839522115-1708537768-180174' at 0x180020000  157    8190 [main] cygpath (25852) user_info::create: user shared version AB1FCCE8  112    8302 [main] cygpath (25852) fhandler_pipe::create: name \\.\pipe\cygwin-d9238e605d902b75-25852-sigwait, size 11440, mode PIPE_TYPE_MESSAGE  230    8532 [main] cygpath (25852) fhandler_pipe::create: pipe read handle 0x98  160    8692 [main] cygpath (25852) fhandler_pipe::create: CreateFile: name \\.\pipe\cygwin-d9238e605d902b75-25852-sigwait  145    8837 [main] cygpath (25852) fhandler_pipe::create: pipe write handle 0x198  142    8979 [main] cygpath (25852) dll_crt0_0: finished dll_crt0_0 initialization--- Process 25852 thread 17084 created--- Process 25852, exception c0000005 at 00000001801390e4--- Process 25852, exception 80000001 at 00007fff9d4c9767--- Process 25852 thread 25940 exited with status 0x80000001--- Process 25852 thread 22408 exited with status 0x80000001--- Process 25852 thread 17084 exited with status 0x80000001--- Process 25852 thread 17688 exited with status 0x80000001--- Process 25852 exited with status 0x80000001

hmm so downgraded to 3.3.3 again and the program runs. But if I use strace the process gets half-killed. Trying to exit from '--help' Ctrl-C results in repeated lines like so and I have to force-close the window 
--- Process 14340, exception c0000005 at 000000018013875c--- Process 14340 thread 28092 created--- Process 14340 thread 22872 created--- Process 14340, exception 40010005 at 00007fff9dbbd67312655695 12666948 [] cygpath (14340) _cygtls::remove: wait 0--- Process 14340 thread 22872 exited with status 0x0--- Process 14340 thread 19264 created--- Process 14340 thread 22068 created--- Process 14340, exception 40010005 at 00007fff9dbbd673--- Process 14340, exception 40010005 at 00007fff9dbbd673

All because I decided to upgrade my installation which had been perfectly fine for well over a year...

    On Friday, April 29, 2022, 05:04:23 AM EDT, Takashi Yano <takashi.yano@nifty.ne.jp> wrote:  
 
 On Fri, 29 Apr 2022 00:22:09 +0000 (UTC)
matthew patton wrote:
> I had to revert to 3.3.3-1 to restore functionality.with 3.3.4 invoking cygpath would cause an Access Violation Exception (0x05) and kill the thread so that I couldn't even do a 'cygpath --help' 
> 
> All of a sudden I also am experiencing fork bombs if I type an invalid command. eg. type 'l' instead of 'ls' and ENTER, it spawns hundreds of 'bash.exe' processes. A half dozen 'pkill -9 bash.exe' heads off calamity. 

That does not happen to me.

-- 
Takashi Yano <takashi.yano@nifty.ne.jp>
  

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:    https://cygwin.com/ml/#unsubscribe-simple
  


More information about the Cygwin mailing list