|
From: Nicholas N. <nj...@ca...> - 2004-05-05 10:46:27
|
CVS commit by nethercote:
Fix for bug #80942.
Addrcheck wasn't doing overlap checking as it should. This is because
mac_replace_strmem.o was being linked with vgskin_addrcheck.so instead of
vgpreload_addrcheck.so. I fixed the Makefile, and also moved
_VG_USERREQ__MEMCHECK_GET_RECORD_OVERLAP so Addrcheck could see it. And I
added the 'overlap' test (from memcheck/tests/) to Addrcheck's regression
suite.
A addrcheck/tests/overlap.stderr.exp 1.1
A addrcheck/tests/overlap.stdout.exp 1.1
A addrcheck/tests/overlap.vgtest 1.1
M +7 -4 addrcheck/Makefile.am 1.49
M +2 -1 addrcheck/tests/Makefile.am 1.8
M +4 -0 memcheck/mac_needs.c 1.25
M +0 -4 memcheck/mc_clientreqs.c 1.19
--- valgrind/addrcheck/Makefile.am #1.48:1.49
@@ -18,10 +18,13 @@
../memcheck/mac_leakcheck.o \
../memcheck/mac_malloc_wrappers.o \
- ../memcheck/mac_needs.o \
- ../memcheck/mac_replace_strmem.o
+ ../memcheck/mac_needs.o
vgpreload_addrcheck_so_SOURCES =
-vgpreload_addrcheck_so_LDADD = $(top_builddir)/coregrind/vg_replace_malloc.o
-vgpreload_addrcheck_so_DEPENDENCIES = $(top_builddir)/coregrind/vg_replace_malloc.o
+vgpreload_addrcheck_so_LDADD = \
+ $(top_builddir)/coregrind/vg_replace_malloc.o \
+ ../memcheck/mac_replace_strmem.o
+vgpreload_addrcheck_so_DEPENDENCIES = \
+ $(top_builddir)/coregrind/vg_replace_malloc.o \
+ ../memcheck/mac_replace_strmem.o
vgpreload_addrcheck_so_LDFLAGS = -shared -Wl,-z,interpose,-z,initfirst
--- valgrind/addrcheck/tests/Makefile.am #1.7:1.8
@@ -9,3 +9,4 @@
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
- $(addsuffix .vgtest,$(INSN_TESTS))
+ $(addsuffix .vgtest,$(INSN_TESTS)) \
+ overlap.stderr.exp overlap.stdout.exp overlap.vgtest
--- valgrind/memcheck/mac_needs.c #1.24:1.25
@@ -874,4 +874,8 @@ Bool MAC_(handle_common_client_requests)
}
+ case _VG_USERREQ__MEMCHECK_GET_RECORD_OVERLAP:
+ *ret = (Addr)MAC_(record_overlap_error);
+ return True;
+
default:
return False;
--- valgrind/memcheck/mc_clientreqs.c #1.18:1.19
@@ -233,8 +233,4 @@ Bool SK_(handle_client_request) ( Thread
break;
- case _VG_USERREQ__MEMCHECK_GET_RECORD_OVERLAP:
- *ret = (Addr)MAC_(record_overlap_error);
- break;
-
default:
if (MAC_(handle_common_client_requests)(tid, arg, ret )) {
|