This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [1.7] deleting in-use directories


Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes:

> Incredible but true.  It was an alignment problem with a local buffer
> in the function which moves the directory to the bin when a sharing
> violation occurs.

> BYTE infobuf[sizeof (FILE_NAME_INFORMATION) + 32767 * sizeof (WCHAR)]

That's an awfully big buffer to be stack-allocating.  It's bigger than a system 
page, which means if you are nearing stack overflow, then call rmdir(), your 
application could suffer from silent termination rather than orderly SIGSEGV 
stack overflow when it accesses beyond the guard page.

Didn't a recent gcc version add a -W option to warn about stack frames larger 
than a certain size?

>  This seems to be a new problem with gcc-4.  As long
> as I built Cygwin with gcc-3, I never had this problem.

Weird, indeed.

> 
> Please test the latest from CVS.  It should fix your problem.

I'll let you know how it goes.  Meanwhile, I've patched the autoconf testsuite 
to avoid triggering the problem in the first place.

-- 
Eric Blake




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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]