[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Running bash under valgrind gives "invalid free()"

From: Reuben Thomas
Subject: Re: Running bash under valgrind gives "invalid free()"
Date: Wed, 12 Apr 2017 14:59:26 +0100

n 12 April 2017 at 14:50, Chet Ramey <address@hidden> wrote:
On 4/12/17 8:57 AM, Reuben Thomas wrote:
> See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=849517
> ​I can reproduce this also in bash 4.3 as supplied with Ubuntu 16.04, and
> in a build of 4.4 from source on my Ubuntu system.
> ​As stated in the bug report, the bug causes problems beyond bash, as it
> causes build systems to think that valgrind is not working, and hence run
> tests without it.

Look at it this way: if the "bug" can't be reproduced on another OS, or
can't be reproduced using a debugging malloc library other than valgrind,
that points the finger at valgrind or Debian.

​Apologies, I didn't think of reproducibility on other OSes. (Though the point about valgrind is not a strong one: ​
​frequently, it's the only tool that shows up bugs of this sort, as it's rather more powerful than a debugging malloc library.)

Apologies also for not noticing that the backtrace was lacking. I've installed debugging symbols here and obtained:

==19358== Invalid free() / delete / delete[] / realloc()
==19358==    at 0x4C2ED5B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==19358==    by 0x45E1D0: unwind_frame_run_internal.constprop.3 (unwind_prot.c:301)
==19358==    by 0x45E37F: without_interrupts (unwind_prot.c:107)
==19358==    by 0x45E37F: run_unwind_frame (unwind_prot.c:135)
==19358==    by 0x47B664: parse_and_execute (evalstring.c:421)
==19358==    by 0x4209D6: run_one_command (shell.c:1348)
==19358==    by 0x41F893: main (shell.c:695)
==19358==  Address 0x423b6e8 is in the brk data segment 0x4228000-0x423bfff

Do let me know if there's anything else useful I can do.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]