[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Valgrind detects invalid read in bash. malloc assertion fails.
From: |
Chet Ramey |
Subject: |
Re: Valgrind detects invalid read in bash. malloc assertion fails. |
Date: |
Wed, 15 May 2019 09:15:41 -0400 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
On 5/15/19 5:46 AM, Andrew Church wrote:
>>> I assume this is a valgrind false positive.
>>
>> That possible. However, the assertion that causes the abort, is part of
>> the malloc.c version (line 934) that ships with bash. I guess that the
>> issue is caused by the fact that bash uses it's own malloc.c, which
>> seems to be incompatible with valgrind.
>
> The immediate cause of this error (which is indeed a false positive) is
> that Valgrind replaces calls to functions named "malloc" and "free" with
> its own memory management functions, but Bash's "free" (from
> lib/malloc/malloc.c) is renamed to "sh_xfree" by xmalloc.h. So memory
> allocations from Bash call Valgrind's malloc(), then eventually pass
> that pointer to Bash's custom free(), which naturally gets confused
> because the pointer wasn't returned from the custom malloc() in the same
> file.
There is a longish discussion about this from two years ago:
http://lists.gnu.org/archive/html/bug-bash/2017-04/msg00038.html
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU chet@case.edu http://tiswww.cwru.edu/~chet/