https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88246

Martin Liška <marxin at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |law at gcc dot gnu.org

--- Comment #5 from Martin Liška <marxin at gcc dot gnu.org> ---
Jeff can also see the problem, there's a valgrind backtrace from him:

==56970==
==56970== Invalid write of size 1
==56970==    at 0x1010E18: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==  Address 0x4ad08ef is 0 bytes after a block of size 31 alloc'd
==56970==    at 0x4831090: malloc (vg_replace_malloc.c:299)
==56970==    by 0x10806DF: xmalloc (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1010DEF: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==
==56970== Invalid write of size 1
==56970==    at 0x1010E30: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==  Address 0x4ad08fb is 12 bytes after a block of size 31 alloc'd
==56970==    at 0x4831090: malloc (vg_replace_malloc.c:299)
==56970==    by 0x10806DF: xmalloc (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1010DEF: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==
==56970== Syscall param stat(file_name) points to unaddressable byte(s)
==56970==    at 0x49FBD90: _xstat (in /usr/lib64/libc-2.26.so)
==56970==    by 0x1010E3D: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==  Address 0x4ad08fb is 12 bytes after a block of size 31 alloc'd
==56970==    at 0x4831090: malloc (vg_replace_malloc.c:299)
==56970==    by 0x10806DF: xmalloc (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1010DEF: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==

valgrind: m_mallocfree.c:307 (get_bszB_as_is): Assertion 'bszB_lo ==
bszB_hi' failed.
valgrind: Heap block lo/hi size mismatch: lo = 96, hi = 3417228689894289267.
This is probably caused by your program erroneously writing past the
end of a heap block and corrupting heap metadata.  If you fix any
invalid writes reported by Memcheck, this assertion failure will
probably go away.  Please try that before reporting this as a bug.


host stacktrace:
==56970==    at 0x8000521BC: ??? (in
/usr/lib64/valgrind/memcheck-s390x-linux)
==56970==    by 0x80005206D: ??? (in
/usr/lib64/valgrind/memcheck-s390x-linux)

sched status:
  running_tid=1

Thread 1: status = VgTs_Runnable (lwpid 56970)
==56970==    at 0x4832522: free (vg_replace_malloc.c:530)
==56970==    by 0x1010E95: find_a_file(path_prefix*, char const*, int)
(in /home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
==56970==    by 0x1005E31: main (in
/home/nfs/law/jenkins/workspace/s390x-linux-gnu/obj/gcc/gcc/collect2)
client stack range: [0x1FFEFFD000 0x1FFF000FFF] client SP: 0x1FFEFFF010
valgrind stack range: [0x1002BA2000 0x1002CA1FFF] top usage: 9784 of 1048576

Reply via email to