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