From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15467 invoked by alias); 29 Sep 2005 01:22:57 -0000 Mailing-List: contact glibc-bugs-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: glibc-bugs-owner@sources.redhat.com Received: (qmail 15365 invoked by alias); 29 Sep 2005 01:22:39 -0000 Date: Thu, 29 Sep 2005 01:22:00 -0000 Message-ID: <20050929012239.15364.qmail@sourceware.org> From: "jkearney at endeca dot com" To: glibc-bugs@sources.redhat.com In-Reply-To: <20050917180908.1349.jkearney@endeca.com> References: <20050917180908.1349.jkearney@endeca.com> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug libc/1349] malloc_usable_size() incorrect when MALLOC_CHECK_>0 X-Bugzilla-Reason: CC X-SW-Source: 2005-09/txt/msg00366.txt.bz2 List-Id: ------- Additional Comments From jkearney at endeca dot com 2005-09-29 01:22 ------- Subject: RE: malloc_usable_size() incorrect when MALLOC_CHECK_>0 Ulrich, I'm not sure that we're communicating here. The comment for malloc_usable_size() says: Returns the number of bytes you can actually use in an allocated chunk, which may be more than you requested (although often not) due to alignment and minimum size constraints. You can use this many bytes without worrying about overwriting other allocated objects. The code sample given conforms to this contract, and works fine when MALLOC_CHECK_=0. When MALLOC_CHECK_ is not 0, the magic byte is overwritten because it is not accounted for. Therefore, *any* operation that checks the magic bytes after the memset() will report an error and/or abort. Change realloc() to free() and the same thing will happen. It has nothing to do with "extension" or "repositioning". Granted, it's a usage which is not very nice, but I don't think it's "misusing malloc_usable_size()". -----Original Message----- From: drepper at redhat dot com [mailto:sourceware-bugzilla@sourceware.org] Sent: Wednesday, September 28, 2005 6:46 PM To: Jim Kearney Subject: [Bug libc/1349] malloc_usable_size() incorrect when MALLOC_CHECK_>0 ------- Additional Comments From drepper at redhat dot com 2005-09-28 22:45 ------- You are misusing malloc_usable_size(). The function gives you information on how much memory a really call can provide you in place. It does not automagically extends the memory block. The realloc call is needed. Admittedly, the information returned by malloc_usable_size() doesn't take the magic byte into account and therefore a really call, which would normally be extended in place, can require a repositioning. But this is no big issue and not worth changing. In summary: your test code is wrong and deserves to crash. -- What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID http://sourceware.org/bugzilla/show_bug.cgi?id=1349 ------- You are receiving this mail because: ------- You reported the bug, or are watching the reporter. This email message and any attachments are confidential to Endeca. If you are not the intended recipient, please notify Endeca immediately -- by replying to this message or by sending an email to: legal@endeca.com -- and destroy all copies of this message and any attachments. Thank you. -- http://sourceware.org/bugzilla/show_bug.cgi?id=1349 ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is.