vgskin_addrcheck_so_LDADD = \
../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
all-local:
insn_basic.vgtest insn_cmov.vgtest insn_mmx.vgtest \
$(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
--- /dev/null
+Source and destination overlap in memcpy(0x........, 0x........, 21)
+ at 0x........: memcpy (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:40)
+
+Source and destination overlap in memcpy(0x........, 0x........, 21)
+ at 0x........: memcpy (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:42)
+
+Source and destination overlap in strncpy(0x........, 0x........, 21)
+ at 0x........: strncpy (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:45)
+
+Source and destination overlap in strncpy(0x........, 0x........, 21)
+ at 0x........: strncpy (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:47)
+
+Source and destination overlap in strcpy(0x........, 0x........)
+ at 0x........: strcpy (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:54)
+
+Source and destination overlap in strncat(0x........, 0x........, 21)
+ at 0x........: strncat (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:112)
+
+Source and destination overlap in strncat(0x........, 0x........, 21)
+ at 0x........: strncat (mac_replace_strmem.c:...)
+ by 0x........: main (overlap.c:113)
--- /dev/null
+`_________________________________________________'
+`abcdefghijklmnopqrstuvwxyz'
+`abcdefghijklmnopqrstuvwxy________________________'
+`abcdefghijklmnopqrstuvwxyz_______________________'
+`abcdefghijklmnopqrstuvwxyz'
+
+`ABCDEFG'
+`ABCDEFGabcdefghijklmnopqrstuvwxyz'
+`ABCDEFGabcdefghijklmnopqrstuvwxy'
+`ABCDEFGabcdefghijklmnopqrstuvwxyz'
+`ABCDEFGabcdefghijklmnopqrstuvwxyz'
--- /dev/null
+vgopts: -q
+prog: ../../memcheck/tests/overlap
return True;
}
+ case _VG_USERREQ__MEMCHECK_GET_RECORD_OVERLAP:
+ *ret = (Addr)MAC_(record_overlap_error);
+ return True;
+
default:
return False;
}
( tid, arg[1], arg[2], arg[3], True /* set them */ );
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 )) {
return True;