From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ken Brown Newsgroups: gmane.emacs.bugs Subject: bug#9273: 23.3; malloc initialization should (sometimes) happen at runtime Date: Sat, 13 Aug 2011 11:33:59 -0400 Message-ID: <4E469967.40201@cornell.edu> References: <4E41940C.2010605@cornell.edu> <83zkjhxnty.fsf@gnu.org> <4E444D85.4090907@cornell.edu> <838vqzxgq1.fsf@gnu.org> <4E44FC1B.9010207@cornell.edu> <831uwqyidi.fsf@gnu.org> <4E451A1F.4060409@cornell.edu> <4E458BF4.9080108@cornell.edu> <83fwl5wxbz.fsf@gnu.org> <4E4680C4.6040605@cornell.edu> <83d3g9weza.fsf@gnu.org> <4E468FE5.100@cornell.edu> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: dough.gmane.org 1313249686 19148 80.91.229.12 (13 Aug 2011 15:34:46 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 13 Aug 2011 15:34:46 +0000 (UTC) Cc: "9273@debbugs.gnu.org" <9273@debbugs.gnu.org> To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Aug 13 17:34:41 2011 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QsGEN-00021g-T3 for geb-bug-gnu-emacs@m.gmane.org; Sat, 13 Aug 2011 17:34:36 +0200 Original-Received: from localhost ([::1]:59533 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QsGEN-0005mA-I5 for geb-bug-gnu-emacs@m.gmane.org; Sat, 13 Aug 2011 11:34:35 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:51211) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QsGEK-0005m5-8z for bug-gnu-emacs@gnu.org; Sat, 13 Aug 2011 11:34:33 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QsGEJ-0007yE-CX for bug-gnu-emacs@gnu.org; Sat, 13 Aug 2011 11:34:32 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:35391) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QsGEJ-0007y9-9h for bug-gnu-emacs@gnu.org; Sat, 13 Aug 2011 11:34:31 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.69) (envelope-from ) id 1QsGFl-0001YL-QL; Sat, 13 Aug 2011 11:36:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Ken Brown Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-To: owner@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Aug 2011 15:36:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 9273 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 9273-submit@debbugs.gnu.org id=B9273.13132497565958 (code B ref 9273); Sat, 13 Aug 2011 15:36:01 +0000 Original-Received: (at 9273) by debbugs.gnu.org; 13 Aug 2011 15:35:56 +0000 Original-Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QsGFg-0001Y3-1O for submit@debbugs.gnu.org; Sat, 13 Aug 2011 11:35:56 -0400 Original-Received: from granite1.mail.cornell.edu ([128.253.83.141] helo=authusersmtp.mail.cornell.edu) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QsGFd-0001Xw-FY for 9273@debbugs.gnu.org; Sat, 13 Aug 2011 11:35:54 -0400 Original-Received: from [192.168.1.98] (c-76-118-2-147.hsd1.ma.comcast.net [76.118.2.147]) (authenticated bits=0) by authusersmtp.mail.cornell.edu (8.14.4/8.12.10) with ESMTP id p7DFYHDG026907 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 13 Aug 2011 11:34:18 -0400 (EDT) User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list Resent-Date: Sat, 13 Aug 2011 11:36:01 -0400 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 1) X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:50051 Archived-At: On 8/13/2011 11:07 AM, Stefan Monnier wrote: >>>> _heapinfo is indeed consistent with the current heap. But the pointer >>>> that was passed to realloc points into the old heap. So applying BLOCK >>>> to that pointer yields an absurd result. I can easily catch such cases >>>> by testing for ptr< _heapbase, as in my patch to _free_internal_nolock, >>>> but I have to figure out the best way to handle them once I've caught >>>> them. >>> malloc a buffer, then copy the contents of the old one to the new >>> one. You will have to know the size of the old block, which means you >>> will have to access the old copy of _heapinfo. >> Thanks! That's much easier than what I was trying to do. > > Wouldn't it be easier to try and convince malloc to keep using the old > _heapinfo? Probably. That would keep me from having to get involved in the details of how _heapinfo works, and it would probably be less error prone. So I would do something like the following: 1. Temporarily restore the pre-dump malloc state. 2. Call xrealloc, getting storage of the new size in the old heap. 3. Copy the contents into a temporary buffer, and then free the recently allocated storage in the old heap. 4. Restore the malloc state, call malloc, and then copy the contents of the temporary buffer into the just-acquired storage in the new heap. Is that what you had in mind? Ken