X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Eric Blake Subject: Re: dlopen() bug (new testcase) Date: Thu, 30 Mar 2006 15:04:27 +0000 (UTC) Lines: 25 Message-ID: References: <470824954 AT web DOT de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit User-Agent: Loom/3.14 (http://gmane.org/) X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Bernhard Loos web.de> writes: > > >You'll have to read the archives. Eric Blake has talked about this very > >recently. > > Sorry, but I'm unable to locate it. The last post mentioning IsBad*Ptr occoured > arround March 2005 - not very recently. http://cygwin.com/ml/cygwin/2006-03/msg00455.html The gist of it is that IsBad*Ptr is a syscall, and a relatively dangerous one at that - Microsoft documents that it is not threadsafe, and that calling IsBadWritePtr on a stack guard page will disable the ability to grow that stack, meaning that the next time you write to the guard page your process will just quit (no popup box, no exception, nothing - just quit). On the other hand, an exception handler is faster in the normal case of good pointers, does not corrupt system state of whether the stack guard page can grow, and does not cause data races with other threads. -- 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/