X-Spam-Check-By: sourceware.org To: cygwin@cygwin.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@web.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@cygwin.com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Delivered-To: mailing list cygwin@cygwin.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/