X-Recipient: archive-cygwin AT delorie DOT com X-Spam-Check-By: sourceware.org Date: Thu, 20 Aug 2009 13:41:24 +0200 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: find(1) memory leak in cygheap Message-ID: <20090820114124.GQ32408@calimero.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <20090819140322 DOT GB8713 AT ednor DOT casa DOT cgf DOT cx> <20090820083926 DOT GJ32408 AT calimero DOT vinschen DOT de> <20090820111955 DOT GP32408 AT calimero DOT vinschen DOT de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20090820111955.GP32408@calimero.vinschen.de> User-Agent: Mutt/1.5.19 (2009-02-20) Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: 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 Oh, btw., please http://cygwin.com/acronyms/#PCYMTNQREAIYR On Aug 20 13:19, Corinna Vinschen wrote: > On Aug 20 18:23, Haojun Bao wrote: > > Great. In fact, I also found this code myself might cause problem in path.h: > > (we should test if path is NULL, and free it before the memcpy, and > > other member pointers should also be checked and free-ed first, is it > > about right?:-) > > Yes and no. It might look cleaner to free the pointers at this point > if they are non-NULL, but in fact the operator= is called after the > path_conv content has been memcpy'ed to another fhandler. So, if you > free the pointers, you free the pointers of another file descriptor. > SEGV's galore! ...which means, path_conv::operator= should only be called for uninitialized fhandlers. It would be a bug in Cygwin if it's called on an already initialized fhandler (with the well known result). Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- 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