URL: <https://savannah.gnu.org/bugs/?66870>
Summary: memory corruption
Group: make
Submitter: None
Submitted: Wed 05 Mar 2025 01:18:16 AM UTC
Severity: 3 - Normal
Item Group: Bug
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Component Version: 4.4.1
Operating System: POSIX-Based
Fixed Release: None
Triage Status: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Wed 05 Mar 2025 01:18:16 AM UTC By: Anonymous
The following Makefile causes memory corruption in the "make" process.
$ cat /tmp/Makefile
.ONESHELL:
SHELL = echo
.SHELLFLAGS = --a=x
q.txt:
a
How bad this is depends on how long the default shell name is.
gdb backtrace:
(gdb) bt
#0 0x00007ffff7c9e4fc in __pthread_kill_implementation () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#1 0x00007ffff7c544c2 in raise () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#2 0x00007ffff7c3e4a3 in abort () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#3 0x00007ffff7c3f3c7 in __libc_message_impl.cold () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#4 0x00007ffff7ca7b15 in malloc_printerr () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#5 0x00007ffff7ca7cdc in munmap_chunk () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#6 0x00007ffff7cac388 in free () from
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6
#7 0x00000000004191d3 in construct_command_argv (line=line@entry=0x492350
"a", restp=restp@entry=0x7fffffffb368, file=<optimized out>, cmd_flags=0,
batch_filename=batch_filename@entry=0x4a1a90)
at src/job.c:3800
#8 0x0000000000419363 in start_job_command (child=child@entry=0x4a1a60) at
src/job.c:1280
#9 0x000000000041a144 in start_waiting_job (c=c@entry=0x4a1a60) at
src/job.c:1646
#10 0x000000000041ab02 in new_job (file=0x498aa0) at src/job.c:1960
#11 0x0000000000426545 in remake_file (file=0x498aa0) at src/remake.c:1313
#12 update_file_1 (depth=<optimized out>, file=<optimized out>) at
src/remake.c:905
#13 update_file (file=file@entry=0x498aa0, depth=<optimized out>) at
src/remake.c:367
#14 0x0000000000426e91 in update_goal_chain (goaldeps=<optimized out>) at
src/remake.c:184
#15 0x000000000040a035 in main (argc=<optimized out>, argv=<optimized out>,
envp=<optimized out>) at src/main.c:2918
valgrind output:
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/bin/valgrind
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make -f
/tmp/Makefile
==24996== Memcheck, a memory error detector
==24996== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==24996== Using Valgrind-3.22.0 and LibVEX; rerun with -h for copyright info
==24996== Command:
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make -f
/tmp/Makefile
==24996==
==24996== Invalid write of size 1
==24996== at 0x484D704: stpcpy (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x41851D: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== Address 0x4fb93cd is 0 bytes after a block of size 13 alloc'd
==24996== at 0x484176B: malloc (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x41D8F4: xmalloc (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x418493: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996==
==24996== Invalid write of size 1
==24996== at 0x484D717: stpcpy (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x41851D: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== Address 0x4fb940b is 5 bytes before a block of size 48 free'd
==24996== at 0x48449E4: free (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x418824: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4184E3: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== Block was alloc'd at
==24996== at 0x484176B: malloc (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x41D8F4: xmalloc (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4180A7: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4184E3: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996==
==24996== Invalid write of size 1
==24996== at 0x484DFB3: memmove (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x418566: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== Address 0x4fb9413 is 3 bytes inside a block of size 48 free'd
==24996== at 0x48449E4: free (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x418824: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4184E3: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== Block was alloc'd at
==24996== at 0x484176B: malloc (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24996== by 0x41D8F4: xmalloc (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4180A7: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4184E3: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24996==
a
==24997== Syscall param execve(argv[i]) points to unaddressable byte(s)
==24997== at 0x4AF21C7: execve (in
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6)
==24997== by 0x4B0BD3C: __spawni_child (in
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6)
==24997== by 0x4B225FF: clone (in
/gnu/store/hw6g2kjayxnqi8rwpnmpraalxi0djkxc-glibc-2.39/lib/libc.so.6)
==24997== Address 0x4fb93cd is 0 bytes after a block of size 13 alloc'd
==24997== at 0x484176B: malloc (in
/gnu/store/s566j0nnm5pd2ifmkbclb3bhcfm2x27v-valgrind-3.22.0/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==24997== by 0x41D8F4: xmalloc (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x418493: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x4191B7: construct_command_argv (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x419362: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x41A143: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x41AB01: new_job (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x426544: ??? (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x426E90: update_goal_chain (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997== by 0x40A034: main (in
/gnu/store/biin1q4vz75zmlfhz561lvwlzcgd5c3q-make-4.4.1/bin/make)
==24997==
/gnu/store/m0xdsa8cfq6mq1kxgxmpmpg71la4f0b9-bash-minimal-5.1.16/bin/sh -c a=x
a
==24996==
==24996== HEAP SUMMARY:
==24996== in use at exit: 165,605 bytes in 1,658 blocks
==24996== total heap usage: 5,164 allocs, 3,506 frees, 543,435 bytes
allocated
==24996==
==24996== LEAK SUMMARY:
==24996== definitely lost: 0 bytes in 0 blocks
==24996== indirectly lost: 0 bytes in 0 blocks
==24996== possibly lost: 0 bytes in 0 blocks
==24996== still reachable: 165,605 bytes in 1,658 blocks
==24996== suppressed: 0 bytes in 0 blocks
==24996== Rerun with --leak-check=full to see details of leaked memory
==24996==
==24996== For lists of detected and suppressed errors, rerun with: -s
==24996== ERROR SUMMARY: 72 errors from 3 contexts (suppressed: 0 from 0)
_______________________________________________________
File Attachments:
-------------------------------------------------------
Name: make.patch Size: 1009B
<https://file.savannah.gnu.org/file/make.patch?file_id=56972>
AGPL NOTICE
These attachments are served by Savane. You can download the corresponding
source code of Savane at
https://savannah.gnu.org/source/savane-513955078e56c124c506c834d031bbe09cbf4040.tar.gz
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?66870>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
