On May 6 11:09, Shaddy Baddah wrote: > Hi, > > I've just dropped snapshot 2014-05-05 into my 64bit Cygwin install. > > I am getting a segmentation fault running ssh from within a screen > session. Regardless of the arguments passed: > > $ ssh -V > OpenSSH_6.6.1p1, OpenSSL 1.0.1g 7 Apr 2014 > > $ screen > <cleared screen> > Screen version 4.01.00devel (GNU) 2-May-06 > ... > [Press Space or Return to end.] > <cleared screen> > $ ssh -V > Segmentation fault (core dumped)
This is by far the worst message I got in the last couple of weeks :( The problem here is that I thought it would be a good idea to cache passwd and group data in the cygheap, which is a Cygwin DLL specific heap containing datastructures propagated to child processes via fork and execve. The problem, which I totally not realized since I started implementing this stuff is, that by propagating this cache to child processes, said child processes suffer from what the parent process does to the passwd structures in the cache. Screen seems to call getpwuid and then sets some of the pointers in the passwd structure it got from the call to NULL, apparently for some sort of security, this way overwriting the cached passwd struct for the current user. Ssh on the other hand tries to copy the passwd structure, but it never checks for NULL pointers because, well, the passwd structure never contains NULL pointers. This annihilates every advantage the cygheap caching has. *sob* Oh well, back to the drawing board. This will take some time, though. Thanks, Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
pgpTN51U7qWHh.pgp
Description: PGP signature