|
From: <sv...@va...> - 2015-04-29 19:35:55
|
Author: florian
Date: Wed Apr 29 20:35:47 2015
New Revision: 15156
Log:
Merge from trunk.
Added:
branches/ASPACEM_TWEAKS/none/tests/linux/brk-overflow1.c
- copied unchanged from r15155, trunk/none/tests/linux/brk-overflow1.c
branches/ASPACEM_TWEAKS/none/tests/linux/brk-overflow1.stderr.exp
- copied unchanged from r15155, trunk/none/tests/linux/brk-overflow1.stderr.exp
branches/ASPACEM_TWEAKS/none/tests/linux/brk-overflow1.vgtest
- copied unchanged from r15155, trunk/none/tests/linux/brk-overflow1.vgtest
branches/ASPACEM_TWEAKS/none/tests/linux/brk-overflow2.c
- copied unchanged from r15155, trunk/none/tests/linux/brk-overflow2.c
branches/ASPACEM_TWEAKS/none/tests/linux/brk-overflow2.stderr.exp
- copied unchanged from r15155, trunk/none/tests/linux/brk-overflow2.stderr.exp
branches/ASPACEM_TWEAKS/none/tests/linux/brk-overflow2.vgtest
- copied unchanged from r15155, trunk/none/tests/linux/brk-overflow2.vgtest
Modified:
branches/ASPACEM_TWEAKS/ (props changed)
branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c
branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c
branches/ASPACEM_TWEAKS/memcheck/tests/linux/brk.stderr.exp
branches/ASPACEM_TWEAKS/none/tests/linux/ (props changed)
branches/ASPACEM_TWEAKS/none/tests/linux/Makefile.am
Modified: branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_initimg/initimg-linux.c Wed Apr 29 20:35:47 2015
@@ -567,7 +567,7 @@
VG_(printf)("valgrind: "
"This may be the result of a very large --main-stacksize=\n");
VG_(printf)("valgrind: setting. Cannot continue. Sorry.\n\n");
- VG_(exit)(0);
+ VG_(exit)(1);
}
vg_assert(ok);
Modified: branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c
==============================================================================
--- branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c (original)
+++ branches/ASPACEM_TWEAKS/coregrind/m_syswrap/syswrap-generic.c Wed Apr 29 20:35:47 2015
@@ -1185,7 +1185,7 @@
/* Set the new data segment end to NEWBRK. If this succeeds, return
NEWBRK, else return the current data segment end. */
-static Addr do_brk ( Addr newbrk )
+static Addr do_brk ( Addr newbrk, ThreadId tid )
{
NSegment const* aseg;
Addr newbrkP;
@@ -1254,10 +1254,17 @@
vg_assert(delta > 0);
vg_assert(VG_IS_PAGE_ALIGNED(delta));
- Bool overflow; // ignored here
+ Bool overflow;
if (! VG_(am_extend_into_adjacent_reservation_client)( aseg->start, delta,
- &overflow))
+ &overflow)) {
+ if (overflow)
+ VG_(umsg)("brk segment overflow in thread #%d: can't grow to %#lx\n",
+ tid, newbrkP);
+ else
+ VG_(umsg)("Cannot map memory to grow brk segment in thread #%d "
+ "to %#lx\n", tid, newbrkP);
goto bad;
+ }
VG_(brk_limit) = newbrk;
return newbrk;
@@ -2997,7 +3004,7 @@
PRINT("sys_brk ( %#lx )", ARG1);
PRE_REG_READ1(unsigned long, "brk", unsigned long, end_data_segment);
- brk_new = do_brk(ARG1);
+ brk_new = do_brk(ARG1, tid);
SET_STATUS_Success( brk_new );
if (brk_new == ARG1) {
Modified: branches/ASPACEM_TWEAKS/memcheck/tests/linux/brk.stderr.exp
==============================================================================
--- branches/ASPACEM_TWEAKS/memcheck/tests/linux/brk.stderr.exp (original)
+++ branches/ASPACEM_TWEAKS/memcheck/tests/linux/brk.stderr.exp Wed Apr 29 20:35:47 2015
@@ -1,4 +1,6 @@
+brk segment overflow in thread #1: can't grow to 0x........
+brk segment overflow in thread #1: can't grow to 0x........
HEAP SUMMARY:
in use at exit: ... bytes in ... blocks
Modified: branches/ASPACEM_TWEAKS/none/tests/linux/Makefile.am
==============================================================================
--- branches/ASPACEM_TWEAKS/none/tests/linux/Makefile.am (original)
+++ branches/ASPACEM_TWEAKS/none/tests/linux/Makefile.am Wed Apr 29 20:35:47 2015
@@ -5,6 +5,8 @@
EXTRA_DIST = \
blockfault.stderr.exp blockfault.vgtest \
+ brk-overflow1.stderr.exp brk-overflow1.vgtest \
+ brk-overflow2.stderr.exp brk-overflow2.vgtest \
mremap.stderr.exp mremap.stderr.exp-glibc27 mremap.stdout.exp \
mremap.vgtest \
mremap2.stderr.exp mremap2.stdout.exp mremap2.vgtest \
@@ -14,6 +16,8 @@
check_PROGRAMS = \
blockfault \
+ brk-overflow1 \
+ brk-overflow2 \
mremap \
mremap2 \
mremap3 \
|