On Sat, Jul 30, 2011 at 10:21:30AM +0200, Corinna Vinschen wrote: >On Jul 30 14:44, jojelino wrote: >> Breakpoint 2, fhandler_registry::close (this=0x612cba5c) >> at /tmp/winsup/winsup/cygwin/fhandler_registry.cc:856 >> 856 cfree (value_name); >> 10: this->value_name = 0x612cb374 L"services" >> (gdb) >> Continuing. >> >> 0x612cba5c->value_name = 0 >> 0x612cb124_2->value_name = 0x612cba5c->value_name = 0x612cb374 >> L"services" (quadruple-freed but known as not freed) >> >> Program received signal SIGSEGV, Segmentation fault. >> 0x7c80bef7 in RaiseException () from >> /cygdrive/c/WINDOWS/system32/kernel32.dll >> >> In brief, same address quadruple-freed. because of dangling pointer. >> Regards. > >It turned out that I could reproduce the problem, I just didn't notice >it. I expected an error message but find died silently, so I took that >as "it works". Serves me right for looking into Cygwin bug reports too >late at night.
Funny. I did exactly the same thing maybe for the same reason. If I had run the command under strace, I would have seen that it failed. The snapshot bisection + jojelino's debugging did point at the reason for the problem, though. I changed the way dup() worked slightly back in May and that tickled a nascent problem in fhandler_registry::dup. Thanks to everyone who contributed debugging details. cgf -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple