** Also affects: make-dfsg (Ubuntu Precise) Importance: Undecided Status: New
** Also affects: make-dfsg (Ubuntu Trusty) Importance: Undecided Status: New ** Also affects: make-dfsg (Ubuntu Utopic) Importance: Undecided Status: New ** Changed in: make-dfsg (Ubuntu Utopic) Status: New => Invalid ** Changed in: make-dfsg (Ubuntu Trusty) Status: New => Confirmed ** Changed in: make-dfsg (Ubuntu Precise) Status: New => Confirmed -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to make-dfsg in Ubuntu. https://bugs.launchpad.net/bugs/1348150 Title: Memory corruption (using memory after freeing) in GNU Make Status in “make-dfsg” package in Ubuntu: Invalid Status in “make-dfsg” source package in Precise: Confirmed Status in “make-dfsg” source package in Trusty: Confirmed Status in “make-dfsg” source package in Utopic: Invalid Status in “make-dfsg” package in Fedora: New Bug description: I'm getting memory corruption (accessing memory after freeing) in GNU Make on trivial Makefile #--------------------------------------------------------------- release: CXXFLAGS ?= -O2 -mfpmath=sse debug: CXXFLAGS ?= -g CXXFLAGS ?= -O2 -g release debug all: @echo $(CXXFLAGS) @echo $(CXX) #--------------------------------------------------------------- when providing value of CXXFLAGS in command line. For example make CXXFLAGS=-O2 Reproduced on: Ubuntu 14.04 LTS x86_64 Ubuntu 12.04.4 LTS i686 (really chroot) Also reproduced with GNU Make-3.82 from ftp.gnu.org compiled from sources. Did not happen with GNU Make 4.0 from ftp.gnu.org Valgrind error messages (package installed on Ubuntu 14.04 LTS x86_64): ==4354== Memcheck, a memory error detector ==4354== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==4354== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==4354== Command: make CXXFLAGS=-O3 ==4354== ==4354== Invalid read of size 1 ==4354== at 0x4C2E0E2: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4354== by 0x4EC066D: strdup (strdup.c:41) ==4354== by 0x4122B8: ??? (in /usr/bin/make) ==4354== by 0x416070: ??? (in /usr/bin/make) ==4354== by 0x416BA3: ??? (in /usr/bin/make) ==4354== by 0x416F73: ??? (in /usr/bin/make) ==4354== by 0x403216: ??? (in /usr/bin/make) ==4354== by 0x4E58EC4: (below main) (libc-start.c:287) ==4354== Address 0x520e880 is 0 bytes inside a block of size 4 free'd ==4354== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4354== by 0x416067: ??? (in /usr/bin/make) ==4354== by 0x416BA3: ??? (in /usr/bin/make) ==4354== by 0x416F73: ??? (in /usr/bin/make) ==4354== by 0x403216: ??? (in /usr/bin/make) ==4354== by 0x4E58EC4: (below main) (libc-start.c:287) ==4354== ==4354== Invalid read of size 1 ==4354== at 0x4C2E0F4: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4354== by 0x4EC066D: strdup (strdup.c:41) ==4354== by 0x4122B8: ??? (in /usr/bin/make) ==4354== by 0x416070: ??? (in /usr/bin/make) ==4354== by 0x416BA3: ??? (in /usr/bin/make) ==4354== by 0x416F73: ??? (in /usr/bin/make) ==4354== by 0x403216: ??? (in /usr/bin/make) ==4354== by 0x4E58EC4: (below main) (libc-start.c:287) ==4354== Address 0x520e881 is 1 bytes inside a block of size 4 free'd ==4354== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4354== by 0x416067: ??? (in /usr/bin/make) ==4354== by 0x416BA3: ??? (in /usr/bin/make) ==4354== by 0x416F73: ??? (in /usr/bin/make) ==4354== by 0x403216: ??? (in /usr/bin/make) ==4354== by 0x4E58EC4: (below main) (libc-start.c:287) ==4354== ==4354== Invalid read of size 2 ==4354== at 0x4C2FDC0: __GI_memcpy (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4354== by 0x4122B8: ??? (in /usr/bin/make) ==4354== by 0x416070: ??? (in /usr/bin/make) ==4354== by 0x416BA3: ??? (in /usr/bin/make) ==4354== by 0x416F73: ??? (in /usr/bin/make) ==4354== by 0x403216: ??? (in /usr/bin/make) ==4354== by 0x4E58EC4: (below main) (libc-start.c:287) ==4354== Address 0x520e880 is 0 bytes inside a block of size 4 free'd ==4354== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==4354== by 0x416067: ??? (in /usr/bin/make) ==4354== by 0x416BA3: ??? (in /usr/bin/make) ==4354== by 0x416F73: ??? (in /usr/bin/make) ==4354== by 0x403216: ??? (in /usr/bin/make) ==4354== by 0x4E58EC4: (below main) (libc-start.c:287) ==4354== From similar test with make-3.82 I'm getting: ==24068== Memcheck, a memory error detector ==24068== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==24068== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info ==24068== Command: make-3.82 CXXFLAGS=-O3 ==24068== ==24068== Invalid read of size 1 ==24068== at 0x4C2E0E2: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24068== by 0x4EC066D: strdup (strdup.c:41) ==24068== by 0x412E88: xstrdup (misc.c:413) ==24068== by 0x416B8B: eval (read.c:1818) ==24068== by 0x417469: eval_makefile (read.c:423) ==24068== by 0x417823: read_all_makefiles (read.c:257) ==24068== by 0x403410: main (main.c:1659) ==24068== Address 0x521c650 is 0 bytes inside a block of size 4 free'd ==24068== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24068== by 0x416B82: eval (read.c:1817) ==24068== by 0x417469: eval_makefile (read.c:423) ==24068== by 0x417823: read_all_makefiles (read.c:257) ==24068== by 0x403410: main (main.c:1659) ==24068== ==24068== Invalid read of size 1 ==24068== at 0x4C2E0F4: strlen (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24068== by 0x4EC066D: strdup (strdup.c:41) ==24068== by 0x412E88: xstrdup (misc.c:413) ==24068== by 0x416B8B: eval (read.c:1818) ==24068== by 0x417469: eval_makefile (read.c:423) ==24068== by 0x417823: read_all_makefiles (read.c:257) ==24068== by 0x403410: main (main.c:1659) ==24068== Address 0x521c651 is 1 bytes inside a block of size 4 free'd ==24068== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24068== by 0x416B82: eval (read.c:1817) ==24068== by 0x417469: eval_makefile (read.c:423) ==24068== by 0x417823: read_all_makefiles (read.c:257) ==24068== by 0x403410: main (main.c:1659) ==24068== ==24068== Invalid read of size 2 ==24068== at 0x4C2FDC0: __GI_memcpy (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24068== by 0x412E88: xstrdup (misc.c:413) ==24068== by 0x416B8B: eval (read.c:1818) ==24068== by 0x417469: eval_makefile (read.c:423) ==24068== by 0x417823: read_all_makefiles (read.c:257) ==24068== by 0x403410: main (main.c:1659) ==24068== Address 0x521c650 is 0 bytes inside a block of size 4 free'd ==24068== at 0x4C2BDEC: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==24068== by 0x416B82: eval (read.c:1817) ==24068== by 0x417469: eval_makefile (read.c:423) ==24068== by 0x417823: read_all_makefiles (read.c:257) ==24068== by 0x403410: main (main.c:1659) ==24068== ProblemType: Bug DistroRelease: Ubuntu 14.04 Package: make 3.81-8.2ubuntu3 ProcVersionSignature: Ubuntu 3.13.0-32.57-generic 3.13.11.4 Uname: Linux 3.13.0-32-generic x86_64 NonfreeKernelModules: nvidia ApportVersion: 2.14.1-0ubuntu3.2 Architecture: amd64 CurrentDesktop: KDE Date: Thu Jul 24 14:35:00 2014 Dependencies: gcc-4.9-base 4.9.1-1 [origin: unknown] libc6 2.19-0ubuntu6 libgcc1 1:4.9.1-1 [origin: unknown] multiarch-support 2.19-0ubuntu6 InstallationDate: Installed on 2014-07-07 (17 days ago) InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Release amd64 (20140417) SourcePackage: make-dfsg UpgradeStatus: No upgrade log present (probably fresh install) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/make-dfsg/+bug/1348150/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp