You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
1
(22) |
2
(19) |
3
(8) |
4
(34) |
5
(14) |
6
(14) |
|
7
(12) |
8
(15) |
9
(15) |
10
(10) |
11
(10) |
12
(28) |
13
(11) |
|
14
(22) |
15
(29) |
16
(20) |
17
(15) |
18
(39) |
19
(11) |
20
(12) |
|
21
(8) |
22
(9) |
23
(8) |
24
(10) |
25
(9) |
26
(7) |
27
(7) |
|
28
(6) |
29
(6) |
30
(11) |
|
|
|
|
|
From: Tom H. <th...@cy...> - 2004-11-16 19:44:08
|
CVS commit by thughes:
The calculation used to round the size of a new thread's stack to a
multiple of the page size had an off by one error. Fixed it to use
the PGROUNDUP macro instead of trying to do the calculation itself
and then get it wrong.
MERGE TO STABLE
A none/tests/pth_stackalign.c 1.1.2.1 [POSSIBLY UNSAFE: printf] [no copyright]
A none/tests/pth_stackalign.stderr.exp 1.1.2.1
A none/tests/pth_stackalign.stdout.exp 1.1.2.1
A none/tests/pth_stackalign.vgtest 1.1.2.1
M +1 -2 coregrind/vg_scheduler.c 1.171.2.3
M +1 -0 none/tests/.cvsignore 1.18.2.1
M +6 -2 none/tests/Makefile.am 1.43.2.1
--- valgrind/coregrind/vg_scheduler.c #1.171.2.2:1.171.2.3
@@ -1954,6 +1954,5 @@ void do__apply_in_new_thread ( ThreadId
/* Consider allocating the child a stack, if the one it already has
is inadequate. */
- new_stk_szb = si->size + VG_AR_CLIENT_STACKBASE_REDZONE_SZB + si->guardsize;
- new_stk_szb = (new_stk_szb + VKI_BYTES_PER_PAGE - 1) & ~VKI_BYTES_PER_PAGE;
+ new_stk_szb = PGROUNDUP(si->size + VG_AR_CLIENT_STACKBASE_REDZONE_SZB + si->guardsize);
VG_(threads)[tid].stack_guard_size = si->guardsize;
--- valgrind/none/tests/.cvsignore #1.18:1.18.2.1
@@ -40,4 +40,5 @@
pluto
pth_blockedsig
+pth_stackalign
rcl_assert
rcrl
--- valgrind/none/tests/Makefile.am #1.43:1.43.2.1
@@ -47,4 +47,6 @@
pth_blockedsig.stderr.exp \
pth_blockedsig.stdout.exp pth_blockedsig.vgtest \
+ pth_stackalign.stderr.exp \
+ pth_stackalign.stdout.exp pth_stackalign.vgtest \
pushpopseg.stderr.exp pushpopseg.stdout.exp pushpopseg.vgtest \
rcl_assert.stderr.exp rcl_assert.vgtest \
@@ -75,6 +77,6 @@
int munmap_exe map_unmap mq mremap rcl_assert rcrl readline1 \
resolv rlimit_nofile seg_override sem semlimit sha1_test \
- shortpush shorts smc1 susphello pth_blockedsig pushpopseg \
- syscall-restart1 syscall-restart2 system \
+ shortpush shorts smc1 susphello pth_blockedsig pth_stackalign \
+ pushpopseg syscall-restart1 syscall-restart2 system \
coolo_sigaction gxx304 yield
@@ -156,4 +158,6 @@
pth_blockedsig_SOURCES = pth_blockedsig.c
pth_blockedsig_LDADD = -lpthread
+pth_stackalign_SOURCES = pth_stackalign.c
+pth_stackalign_LDADD = -lpthread
# generic C++ ones
|
|
From: Tom H. <th...@cy...> - 2004-11-16 19:40:12
|
CVS commit by thughes:
The calculation used to round the size of a new thread's stack to a
multiple of the page size had an off by one error. Fixed it to use
the PGROUNDUP macro instead of trying to do the calculation itself
and then get it wrong.
BUG: 93309
A none/tests/pth_stackalign.c 1.1 [POSSIBLY UNSAFE: printf] [no copyright]
A none/tests/pth_stackalign.stderr.exp 1.1
A none/tests/pth_stackalign.stdout.exp 1.1
A none/tests/pth_stackalign.vgtest 1.1
M +2 -3 coregrind/vg_scheduler.c 1.201
M +1 -0 none/tests/.cvsignore 1.22
M +5 -1 none/tests/Makefile.am 1.51
--- valgrind/coregrind/vg_scheduler.c #1.200:1.201
@@ -1813,6 +1813,5 @@ void do__apply_in_new_thread ( ThreadId
/* Consider allocating the child a stack, if the one it already has
is inadequate. */
- new_stk_szb = si->size + VG_AR_CLIENT_STACKBASE_REDZONE_SZB + si->guardsize;
- new_stk_szb = (new_stk_szb + VKI_PAGE_SIZE - 1) & ~VKI_PAGE_SIZE;
+ new_stk_szb = PGROUNDUP(si->size + VG_AR_CLIENT_STACKBASE_REDZONE_SZB + si->guardsize);
VG_(threads)[tid].stack_guard_size = si->guardsize;
--- valgrind/none/tests/.cvsignore #1.21:1.22
@@ -34,4 +34,5 @@
pluto
pth_blockedsig
+pth_stackalign
rcrl
readline1
--- valgrind/none/tests/Makefile.am #1.50:1.51
@@ -33,4 +33,6 @@
pth_blockedsig.stderr.exp \
pth_blockedsig.stdout.exp pth_blockedsig.vgtest \
+ pth_stackalign.stderr.exp \
+ pth_stackalign.stdout.exp pth_stackalign.vgtest \
rcrl.stderr.exp rcrl.stdout.exp rcrl.vgtest \
readline1.stderr.exp readline1.stdout.exp \
@@ -57,5 +59,5 @@
munmap_exe map_unmap mq mremap rcrl readline1 \
resolv rlimit_nofile sem semlimit sha1_test \
- shortpush shorts smc1 susphello pth_blockedsig \
+ shortpush shorts smc1 susphello pth_blockedsig pth_stackalign \
syscall-restart1 syscall-restart2 system \
coolo_sigaction gxx304 yield
@@ -116,4 +118,6 @@
pth_blockedsig_SOURCES = pth_blockedsig.c
pth_blockedsig_LDADD = -lpthread
+pth_stackalign_SOURCES = pth_stackalign.c
+pth_stackalign_LDADD = -lpthread
# generic C++ ones
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 18:26:17
|
CVS commit by nethercote:
debug output wibble
M +2 -2 vg_signals.c 1.104
--- valgrind/coregrind/vg_signals.c #1.103:1.104
@@ -488,5 +488,5 @@ void VG_(do_sys_sigaltstack) ( ThreadId
if (VG_(clo_trace_signals))
VG_(message)(Vg_DebugExtraMsg,
- "__NR_sigaltstack: tid %d, "
+ "sys_sigaltstack: tid %d, "
"ss %p, oss %p (current SP %p)",
tid, (void*)ss, (void*)oss, (void*)m_SP );
@@ -541,5 +541,5 @@ void VG_(do_sys_sigaction) ( ThreadId ti
if (VG_(clo_trace_signals))
VG_(message)(Vg_DebugExtraMsg,
- "__NR_sigaction: tid %d, sigNo %d, "
+ "sys_sigaction: tid %d, sigNo %d, "
"new %p, old %p, new flags 0x%llx",
tid, signo, (UWord)new_act, (UWord)old_act,
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 18:20:37
|
CVS commit by nethercote:
account for restart_syscall
M +3 -2 scalar.c 1.51
M +5 -2 scalar.stderr.exp 1.43
--- valgrind/memcheck/tests/scalar.c #1.50:1.51
@@ -24,6 +24,7 @@ int main(void)
// All __NR_xxx numbers are taken from x86
- // __NR_restart_syscall 0 XXX ???
- // (see below)
+ // __NR_restart_syscall 0 // XXX: not yet handled, perhaps should be...
+ GO(__NR_restart_syscall, "n/a");
+ //SY(__NR_restart_syscall); // (Not yet handled by Valgrind) FAIL;
// __NR_exit 1
--- valgrind/memcheck/tests/scalar.stderr.exp #1.42:1.43
@@ -1,3 +1,6 @@
-----------------------------------------------------
+ 0:__NR_restart_syscall n/a
+-----------------------------------------------------
+-----------------------------------------------------
1: __NR_exit below
-----------------------------------------------------
@@ -2686,5 +2689,5 @@
by 0x........: ...
Address 0x........ is 0 bytes inside a block of size 12 client-defined
- at 0x........: main (scalar.c:810)
+ at 0x........: main (scalar.c:811)
Syscall param sigaltstack(oss) points to unaddressable byte(s)
@@ -2693,5 +2696,5 @@
by 0x........: ...
Address 0x........ is 0 bytes inside a block of size 12 client-defined
- at 0x........: main (scalar.c:810)
+ at 0x........: main (scalar.c:811)
-----------------------------------------------------
187: __NR_sendfile 4s 1m
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 18:13:16
|
CVS commit by nethercote:
fix incorrect counts
M +3 -3 scalar.c 1.50
M +2 -2 scalar.stderr.exp 1.42
--- valgrind/memcheck/tests/scalar.c #1.49:1.50
@@ -136,6 +136,6 @@ int main(void)
// __NR_ptrace 26
- // XXX: memory pointed to be arg3 is never checked...
- GO(__NR_ptrace, "4s 2m");
+ // XXX: memory pointed to be arg3 goes unchecked... otherwise would be 2m
+ GO(__NR_ptrace, "4s 1m");
SY(__NR_ptrace, x0+PTRACE_GETREGS, x0, x0, x0); FAIL;
@@ -1192,5 +1192,5 @@ int main(void)
// __NR_mq_open 277
- GO(__NR_mq_open, "4s 2m");
+ GO(__NR_mq_open, "4s 3m");
SY(__NR_mq_open, x0, x0+O_CREAT, x0, x0+1); FAIL;
--- valgrind/memcheck/tests/scalar.stderr.exp #1.41:1.42
@@ -378,5 +378,5 @@
-----------------------------------------------------
-----------------------------------------------------
- 26: __NR_ptrace 4s 2m
+ 26: __NR_ptrace 4s 1m
-----------------------------------------------------
@@ -4365,5 +4365,5 @@
-----------------------------------------------------
-----------------------------------------------------
-277: __NR_mq_open 4s 2m
+277: __NR_mq_open 4s 3m
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 17:59:06
|
CVS commit by nethercote:
Add some missing test cases.
M +21 -21 scalar.c 1.49
M +54 -2 scalar.stderr.exp 1.41
--- valgrind/memcheck/tests/scalar.c #1.48:1.49
@@ -28,9 +28,9 @@ int main(void)
// __NR_exit 1
- GO(__NR_exit, "other");
+ GO(__NR_exit, "below");
// (see below)
// __NR_fork 2
- GO(__NR_fork, "0s 0m");
+ GO(__NR_fork, "other");
// (sse scalar_fork.c)
@@ -149,5 +149,6 @@ int main(void)
// __NR_pause 29
- // XXX: will have to be tested separately
+ GO(__NR_pause, "ignore");
+ // (hard to test, and no args so not much to be gained -- don't bother)
// __NR_utime 30
@@ -322,6 +323,6 @@ int main(void)
// __NR_sigsuspend 72
// XXX: how do you use this function?
-// GO(__NR_sigsuspend, ".s .m");
-// SY(__NR_sigsuspend); FAIL;
+ GO(__NR_sigsuspend, "ignore");
+ // (I don't know how to test this...)
// __NR_sigpending 73
@@ -448,7 +449,6 @@ int main(void)
// __NR_socketcall 102
- // XXX: need to do properly
-// GO(__NR_socketcall, "2s 1m");
-// SY(__NR_socketcall, x0+SYS_SOCKETPAIR, x0); FAIL;
+ GO(__NR_socketcall, "XXX");
+ // (XXX: need to do all sub-cases properly)
// __NR_syslog 103
@@ -509,5 +509,5 @@ int main(void)
// __NR_ipc 117
- // XXX: This is simplistic -- doesn't treat any of the sub-ops.
+ // XXX: This is simplistic -- need to do all the sub-cases properly.
// XXX: Also, should be 6 scalar errors, except glibc's syscall() doesn't
// use the 6th one!
@@ -521,6 +521,6 @@ int main(void)
// __NR_sigreturn 119
- //GO(__NR_sigreturn, ".s .m");
- //SY(__NR_sigreturn); FAIL;
+ GO(__NR_sigreturn, "n/a");
+ //SY(__NR_sigreturn); // (Not yet handled by Valgrind) FAIL;
// __NR_clone 120
@@ -550,6 +550,6 @@ int main(void)
// __NR_adjtimex 124
- // XXX: need to do properly, but deref'ing NULL...
-// GO(__NR_adjtimex, "1s 1m");
+ // XXX: need to do properly, but deref'ing NULL causing Valgrind to crash...
+ GO(__NR_adjtimex, "XXX");
// SY(__NR_adjtimex, x0); FAIL;
@@ -595,6 +595,6 @@ int main(void)
// __NR_sysfs 135
- //GO(__NR_sysfs, ".s .m");
- //SY(__NR_sysfs); FAIL;
+ GO(__NR_sysfs, "n/a");
+ //SY(__NR_sysfs); // (Not yet handled by Valgrind) FAIL;
// __NR_personality 136
@@ -687,6 +687,6 @@ int main(void)
// __NR_sched_yield 158
- //GO(__NR_sched_yield, ".s .m");
- //SY(__NR_sched_yield); FAIL;
+ GO(__NR_sched_yield, "0s 0m");
+ SY(__NR_sched_yield); SUCC;
// __NR_sched_get_priority_max 159
@@ -707,6 +707,6 @@ int main(void)
// __NR_mremap 163
- //GO(__NR_mremap, ".s .m");
- //SY(__NR_mremap); FAIL;
+ GO(__NR_mremap, "5s 0m");
+ SY(__NR_mremap, x0+1, x0, x0, x0, x0); FAILx(EINVAL);
// __NR_setresuid 164
@@ -771,6 +771,6 @@ int main(void)
// __NR_rt_sigsuspend 179
- //GO(__NR_rt_sigsuspend, ".s .m");
- //SY(__NR_rt_sigsuspend); FAIL;
+ GO(__NR_rt_sigsuspend, "ignore");
+ // (I don't know how to test this...)
// __NR_pread64 180
--- valgrind/memcheck/tests/scalar.stderr.exp #1.40:1.41
@@ -1,7 +1,7 @@
-----------------------------------------------------
- 1: __NR_exit other
+ 1: __NR_exit below
-----------------------------------------------------
-----------------------------------------------------
- 2: __NR_fork 0s 0m
+ 2: __NR_fork other
-----------------------------------------------------
-----------------------------------------------------
@@ -418,4 +418,7 @@
-----------------------------------------------------
-----------------------------------------------------
+ 29: __NR_pause ignore
+-----------------------------------------------------
+-----------------------------------------------------
30: __NR_utime 2s 2m
-----------------------------------------------------
@@ -829,4 +832,7 @@
by 0x........: ...
-----------------------------------------------------
+ 72: __NR_sigsuspend ignore
+-----------------------------------------------------
+-----------------------------------------------------
73: __NR_sigpending 1s 1m
-----------------------------------------------------
@@ -1273,4 +1279,7 @@
by 0x........: ...
-----------------------------------------------------
+102: __NR_socketcall XXX
+-----------------------------------------------------
+-----------------------------------------------------
103: __NR_syslog 3s 1m
-----------------------------------------------------
@@ -1523,4 +1532,7 @@
by 0x........: ...
-----------------------------------------------------
+119: __NR_sigreturn n/a
+-----------------------------------------------------
+-----------------------------------------------------
120: __NR_clone 4s 0m
-----------------------------------------------------
@@ -1587,4 +1599,7 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+124: __NR_adjtimex XXX
+-----------------------------------------------------
+-----------------------------------------------------
125: __NR_mprotect 3s 0m
-----------------------------------------------------
@@ -1726,4 +1741,7 @@
-----------------------------------------------------
-----------------------------------------------------
+135: __NR_sysfs n/a
+-----------------------------------------------------
+-----------------------------------------------------
136: __NR_personality 1s 0m
-----------------------------------------------------
@@ -2085,4 +2103,7 @@
by 0x........: ...
-----------------------------------------------------
+158: __NR_sched_yield 0s 0m
+-----------------------------------------------------
+-----------------------------------------------------
159:__NR_sched_get_priority_max 1s 0m
-----------------------------------------------------
@@ -2129,4 +2150,32 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+163: __NR_mremap 5s 0m
+-----------------------------------------------------
+
+Syscall param mremap(old_addr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mremap(old_size) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mremap(new_size) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mremap(flags) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mremap(new_addr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
164: __NR_setresuid 3s 0m
-----------------------------------------------------
@@ -2455,4 +2504,7 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+179: __NR_rt_sigsuspend ignore
+-----------------------------------------------------
+-----------------------------------------------------
180: __NR_pread64 5s 1m
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 17:32:05
|
CVS commit by nethercote:
Cleanups: removing stuff no longer needed now that all syscalls have been
converted.
M +330 -354 vg_syscalls.c 1.218
--- valgrind/coregrind/vg_syscalls.c #1.217:1.218
@@ -1085,11 +1085,8 @@ static Bool fd_allowed(Int fd, const Cha
#define PostOnFail (1 << 3)
-#define PRE(x) static void before___NR_##x(ThreadId tid, ThreadState *tst)
-#define POST(x) static void after___NR_##x(ThreadId tid, ThreadState *tst)
-
-#define PREx(x,f) \
+#define PRE(x,f) \
static UInt flags_##x = f; \
static void before_##x(ThreadId tid, ThreadState *tst)
-#define POSTx(x) \
+#define POST(x) \
static void after_##x(ThreadId tid, ThreadState *tst)
@@ -1112,20 +1109,20 @@ static Bool fd_allowed(Int fd, const Cha
#define LOHI64(lo,hi) ( (lo) | ((ULong)(hi) << 32) )
-PREx(sys_exit_group, Special)
+PRE(sys_exit_group, Special)
{
VG_(core_panic)("syscall exit_group() not caught by the scheduler?!");
}
-PREx(sys_exit, Special)
+PRE(sys_exit, Special)
{
VG_(core_panic)("syscall exit() not caught by the scheduler?!");
}
-PREx(sys_sched_yield, Special)
+PRE(sys_sched_yield, Special)
{
VG_(core_panic)("syscall sched_yield() not caught by the scheduler?!");
}
-PREx(sys_ni_syscall, Special)
+PRE(sys_ni_syscall, Special)
{
PRINT("non-existent syscall! (ni_syscall)");
@@ -1136,5 +1133,5 @@ PREx(sys_ni_syscall, Special)
// XXX: I think this is x86/linux-specific
// XXX: Why is the memory pointed to by arg3 never checked?
-PREx(sys_ptrace, 0)
+PRE(sys_ptrace, 0)
{
PRINT("sys_ptrace ( %d, %d, %p, %p )", arg1,arg2,arg3,arg4);
@@ -1176,5 +1173,5 @@ PREx(sys_ptrace, 0)
// XXX: I think this is x86/linux-specific
-POSTx(sys_ptrace)
+POST(sys_ptrace)
{
switch (arg1) {
@@ -1196,5 +1193,5 @@ POSTx(sys_ptrace)
}
-PREx(sys_mount, MayBlock)
+PRE(sys_mount, MayBlock)
{
// Nb: depending on 'flags', the 'type' and 'data' args may be ignored.
@@ -1210,5 +1207,5 @@ PREx(sys_mount, MayBlock)
}
-PREx(sys_oldumount, 0)
+PRE(sys_oldumount, 0)
{
PRINT("sys_oldumount( %p )", arg1);
@@ -1217,5 +1214,5 @@ PREx(sys_oldumount, 0)
}
-PREx(sys_umount, 0)
+PRE(sys_umount, 0)
{
PRINT("sys_umount( %p )", arg1);
@@ -1224,5 +1221,5 @@ PREx(sys_umount, 0)
}
-PREx(sys_modify_ldt, Special)
+PRE(sys_modify_ldt, Special)
{
PRINT("sys_modify_ldt ( %d, %p, %d )", arg1,arg2,arg3);
@@ -1246,5 +1243,5 @@ PREx(sys_modify_ldt, Special)
}
-PREx(sys_set_thread_area, Special)
+PRE(sys_set_thread_area, Special)
{
PRINT("sys_set_thread_area ( %p )", arg1);
@@ -1256,5 +1253,5 @@ PREx(sys_set_thread_area, Special)
}
-PREx(sys_get_thread_area, Special)
+PRE(sys_get_thread_area, Special)
{
PRINT("sys_get_thread_area ( %p )", arg1);
@@ -1270,5 +1267,5 @@ PREx(sys_get_thread_area, Special)
}
-PREx(sys_set_tid_address, Special)
+PRE(sys_set_tid_address, Special)
{
PRINT("sys_set_tid_address ( %p )", arg1);
@@ -1276,5 +1273,5 @@ PREx(sys_set_tid_address, Special)
}
-PREx(sys_setresgid16, 0)
+PRE(sys_setresgid16, 0)
{
PRINT("sys_setresgid16 ( %d, %d, %d )", arg1, arg2, arg3);
@@ -1283,5 +1280,5 @@ PREx(sys_setresgid16, 0)
}
-PREx(sys_setresgid, 0)
+PRE(sys_setresgid, 0)
{
PRINT("sys_setresgid ( %d, %d, %d )", arg1, arg2, arg3);
@@ -1290,5 +1287,5 @@ PREx(sys_setresgid, 0)
}
-PREx(sys_vhangup, 0)
+PRE(sys_vhangup, 0)
{
PRINT("sys_vhangup ( )");
@@ -1296,5 +1293,5 @@ PREx(sys_vhangup, 0)
}
-PREx(sys_iopl, 0)
+PRE(sys_iopl, 0)
{
PRINT("sys_iopl ( %d )", arg1);
@@ -1302,5 +1299,5 @@ PREx(sys_iopl, 0)
}
-PREx(sys_setxattr, MayBlock)
+PRE(sys_setxattr, MayBlock)
{
PRINT("sys_setxattr ( %p, %p, %p, %llu, %d )",
@@ -1314,5 +1311,5 @@ PREx(sys_setxattr, MayBlock)
}
-PREx(sys_lsetxattr, MayBlock)
+PRE(sys_lsetxattr, MayBlock)
{
PRINT("sys_lsetxattr ( %p, %p, %p, %llu, %d )",
@@ -1326,5 +1323,5 @@ PREx(sys_lsetxattr, MayBlock)
}
-PREx(sys_fsetxattr, MayBlock)
+PRE(sys_fsetxattr, MayBlock)
{
PRINT("sys_fsetxattr ( %d, %p, %p, %llu, %d )",
@@ -1337,5 +1334,5 @@ PREx(sys_fsetxattr, MayBlock)
}
-PREx(sys_getxattr, MayBlock)
+PRE(sys_getxattr, MayBlock)
{
PRINT("sys_getxattr ( %p, %p, %p, %llu )", arg1,arg2,arg3, (ULong)arg4);
@@ -1347,5 +1344,5 @@ PREx(sys_getxattr, MayBlock)
}
-POSTx(sys_getxattr)
+POST(sys_getxattr)
{
if (res > 0 && arg3 != (Addr)NULL) {
@@ -1354,5 +1351,5 @@ POSTx(sys_getxattr)
}
-PREx(sys_lgetxattr, MayBlock)
+PRE(sys_lgetxattr, MayBlock)
{
PRINT("sys_lgetxattr ( %p, %p, %p, %llu )", arg1,arg2,arg3, (ULong)arg4);
@@ -1364,5 +1361,5 @@ PREx(sys_lgetxattr, MayBlock)
}
-POSTx(sys_lgetxattr)
+POST(sys_lgetxattr)
{
if (res > 0 && arg3 != (Addr)NULL) {
@@ -1371,5 +1368,5 @@ POSTx(sys_lgetxattr)
}
-PREx(sys_fgetxattr, MayBlock)
+PRE(sys_fgetxattr, MayBlock)
{
PRINT("sys_fgetxattr ( %d, %p, %p, %llu )", arg1, arg2, arg3, (ULong)arg4);
@@ -1380,5 +1377,5 @@ PREx(sys_fgetxattr, MayBlock)
}
-POSTx(sys_fgetxattr)
+POST(sys_fgetxattr)
{
if (res > 0 && arg3 != (Addr)NULL)
@@ -1386,5 +1383,5 @@ POSTx(sys_fgetxattr)
}
-PREx(sys_listxattr, MayBlock)
+PRE(sys_listxattr, MayBlock)
{
PRINT("sys_listxattr ( %p, %p, %llu )", arg1, arg2, (ULong)arg3);
@@ -1395,5 +1392,5 @@ PREx(sys_listxattr, MayBlock)
}
-POSTx(sys_listxattr)
+POST(sys_listxattr)
{
if (res > 0 && arg2 != (Addr)NULL)
@@ -1401,5 +1398,5 @@ POSTx(sys_listxattr)
}
-PREx(sys_llistxattr, MayBlock)
+PRE(sys_llistxattr, MayBlock)
{
PRINT("sys_llistxattr ( %p, %p, %llu )", arg1, arg2, (ULong)arg3);
@@ -1410,5 +1407,5 @@ PREx(sys_llistxattr, MayBlock)
}
-POSTx(sys_llistxattr)
+POST(sys_llistxattr)
{
if (res > 0 && arg2 != (Addr)NULL)
@@ -1416,5 +1413,5 @@ POSTx(sys_llistxattr)
}
-PREx(sys_flistxattr, MayBlock)
+PRE(sys_flistxattr, MayBlock)
{
PRINT("sys_flistxattr ( %d, %p, %llu )", arg1, arg2, (ULong)arg3);
@@ -1424,5 +1421,5 @@ PREx(sys_flistxattr, MayBlock)
}
-POSTx(sys_flistxattr)
+POST(sys_flistxattr)
{
if (res > 0 && arg2 != (Addr)NULL)
@@ -1430,5 +1427,5 @@ POSTx(sys_flistxattr)
}
-PREx(sys_removexattr, MayBlock)
+PRE(sys_removexattr, MayBlock)
{
PRINT("sys_removexattr ( %p, %p )", arg1, arg2);
@@ -1438,5 +1435,5 @@ PREx(sys_removexattr, MayBlock)
}
-PREx(sys_lremovexattr, MayBlock)
+PRE(sys_lremovexattr, MayBlock)
{
PRINT("sys_lremovexattr ( %p, %p )", arg1, arg2);
@@ -1446,5 +1443,5 @@ PREx(sys_lremovexattr, MayBlock)
}
-PREx(sys_fremovexattr, MayBlock)
+PRE(sys_fremovexattr, MayBlock)
{
PRINT("sys_fremovexattr ( %d, %p )", arg1, arg2);
@@ -1453,5 +1450,5 @@ PREx(sys_fremovexattr, MayBlock)
}
-PREx(sys_quotactl, 0)
+PRE(sys_quotactl, 0)
{
PRINT("sys_quotactl (0x%x, %p, 0x%x, 0x%x )", arg1,arg2,arg3, arg4);
@@ -1463,5 +1460,5 @@ PREx(sys_quotactl, 0)
// XXX: this wrapper is only suitable for 32-bit platforms
-PREx(sys_lookup_dcookie, 0)
+PRE(sys_lookup_dcookie, 0)
{
PRINT("sys_lookup_dcookie (0x%llx, %p, %d)", LOHI64(arg1,arg2), arg3, arg4);
@@ -1472,5 +1469,5 @@ PREx(sys_lookup_dcookie, 0)
}
-POSTx(sys_lookup_dcookie)
+POST(sys_lookup_dcookie)
{
if (arg3 != (Addr)NULL)
@@ -1478,5 +1475,5 @@ POSTx(sys_lookup_dcookie)
}
-PREx(sys_fsync, MayBlock)
+PRE(sys_fsync, MayBlock)
{
PRINT("sys_fsync ( %d )", arg1);
@@ -1484,5 +1481,5 @@ PREx(sys_fsync, MayBlock)
}
-PREx(sys_fdatasync, MayBlock)
+PRE(sys_fdatasync, MayBlock)
{
PRINT("sys_fdatasync ( %d )", arg1);
@@ -1490,5 +1487,5 @@ PREx(sys_fdatasync, MayBlock)
}
-PREx(sys_msync, MayBlock)
+PRE(sys_msync, MayBlock)
{
PRINT("sys_msync ( %p, %llu, %d )", arg1,(ULong)arg2,arg3);
@@ -1508,5 +1505,5 @@ struct vki_pmsg_strbuf {
};
-PREx(sys_getpmsg, MayBlock)
+PRE(sys_getpmsg, MayBlock)
{
/* LiS getpmsg from http://www.gcom.com/home/linux/lis/ */
@@ -1529,5 +1526,5 @@ PREx(sys_getpmsg, MayBlock)
}
-POSTx(sys_getpmsg)
+POST(sys_getpmsg)
{
struct vki_pmsg_strbuf *ctrl;
@@ -1544,5 +1541,5 @@ POSTx(sys_getpmsg)
}
-PREx(sys_putpmsg, MayBlock)
+PRE(sys_putpmsg, MayBlock)
{
/* LiS putpmsg from http://www.gcom.com/home/linux/lis/ */
@@ -1561,5 +1558,5 @@ PREx(sys_putpmsg, MayBlock)
}
-PREx(sys_getitimer, NBRunInLWP)
+PRE(sys_getitimer, NBRunInLWP)
{
PRINT("sys_getitimer ( %d, %p )", arg1, arg2);
@@ -1568,5 +1565,5 @@ PREx(sys_getitimer, NBRunInLWP)
}
-POSTx(sys_getitimer)
+POST(sys_getitimer)
{
if (arg2 != (Addr)NULL) {
@@ -1575,5 +1572,5 @@ POSTx(sys_getitimer)
}
-PREx(sys_setitimer, NBRunInLWP)
+PRE(sys_setitimer, NBRunInLWP)
{
PRINT("sys_setitimer ( %d, %p, %p )", arg1,arg2,arg3);
@@ -1587,5 +1584,5 @@ PREx(sys_setitimer, NBRunInLWP)
}
-POSTx(sys_setitimer)
+POST(sys_setitimer)
{
if (arg3 != (Addr)NULL) {
@@ -1594,5 +1591,5 @@ POSTx(sys_setitimer)
}
-PREx(sys_syslog, MayBlock)
+PRE(sys_syslog, MayBlock)
{
PRINT("sys_syslog (%d, %p, %d)", arg1,arg2,arg3);
@@ -1607,5 +1604,5 @@ PREx(sys_syslog, MayBlock)
}
-POSTx(sys_syslog)
+POST(sys_syslog)
{
switch (arg1) {
@@ -1618,5 +1615,5 @@ POSTx(sys_syslog)
}
-PREx(sys_personality, 0)
+PRE(sys_personality, 0)
{
PRINT("sys_personality ( %llu )", (ULong)arg1);
@@ -1624,5 +1621,5 @@ PREx(sys_personality, 0)
}
-PREx(sys_chroot, 0)
+PRE(sys_chroot, 0)
{
PRINT("sys_chroot ( %p )", arg1);
@@ -1631,5 +1628,5 @@ PREx(sys_chroot, 0)
}
-PREx(sys_madvise, MayBlock)
+PRE(sys_madvise, MayBlock)
{
PRINT("sys_madvise ( %p, %llu, %d )", arg1,(ULong)arg2,arg3);
@@ -1638,5 +1635,5 @@ PREx(sys_madvise, MayBlock)
}
-PREx(sys_mremap, Special)
+PRE(sys_mremap, Special)
{
// Nb: this is different to the glibc version described in the man pages,
@@ -1651,5 +1648,5 @@ PREx(sys_mremap, Special)
}
-PREx(sys_nice, 0)
+PRE(sys_nice, 0)
{
PRINT("sys_nice ( %d )", arg1);
@@ -1657,5 +1654,5 @@ PREx(sys_nice, 0)
}
-PREx(sys_setfsuid, 0)
+PRE(sys_setfsuid, 0)
{
PRINT("sys_setfsuid ( %d )", arg1);
@@ -1663,5 +1660,5 @@ PREx(sys_setfsuid, 0)
}
-PREx(sys_sysctl, 0)
+PRE(sys_sysctl, 0)
{
PRINT("sys_sysctl ( %p )", arg1 );
@@ -1670,10 +1667,10 @@ PREx(sys_sysctl, 0)
}
-POSTx(sys_sysctl)
+POST(sys_sysctl)
{
POST_MEM_WRITE( arg1, sizeof(struct __vki_sysctl_args) );
}
-PREx(sys_sched_getscheduler, 0/*???*/)
+PRE(sys_sched_getscheduler, 0)
{
PRINT("sys_sched_getscheduler ( %d )", arg1);
@@ -1681,5 +1678,5 @@ PREx(sys_sched_getscheduler, 0/*???*/)
}
-PREx(sys_sched_setscheduler, 0/*???*/)
+PRE(sys_sched_setscheduler, 0)
{
PRINT("sys_sched_setscheduler ( %d, %d, %p )", arg1,arg2,arg3);
@@ -1691,5 +1688,5 @@ PREx(sys_sched_setscheduler, 0/*???*/)
}
-PREx(sys_mlock, MayBlock)
+PRE(sys_mlock, MayBlock)
{
PRINT("sys_mlock ( %p, %llu )", arg1, (ULong)arg2);
@@ -1697,5 +1694,5 @@ PREx(sys_mlock, MayBlock)
}
-PREx(sys_munlock, MayBlock)
+PRE(sys_munlock, MayBlock)
{
PRINT("sys_munlock ( %p, %llu )", arg1, (ULong)arg2);
@@ -1703,5 +1700,5 @@ PREx(sys_munlock, MayBlock)
}
-PREx(sys_mlockall, MayBlock)
+PRE(sys_mlockall, MayBlock)
{
PRINT("sys_mlockall ( %x )", arg1);
@@ -1709,5 +1706,5 @@ PREx(sys_mlockall, MayBlock)
}
-PREx(sys_munlockall, MayBlock)
+PRE(sys_munlockall, MayBlock)
{
PRINT("sys_munlockall ( )");
@@ -1715,5 +1712,5 @@ PREx(sys_munlockall, MayBlock)
}
-PREx(sys_sched_get_priority_max, 0/*???*/)
+PRE(sys_sched_get_priority_max, 0)
{
PRINT("sched_get_priority_max ( %d )", arg1);
@@ -1721,5 +1718,5 @@ PREx(sys_sched_get_priority_max, 0/*???*
}
-PREx(sys_sched_get_priority_min, 0/*???*/)
+PRE(sys_sched_get_priority_min, 0)
{
PRINT("sched_get_priority_min ( %d )", arg1);
@@ -1727,5 +1724,5 @@ PREx(sys_sched_get_priority_min, 0/*???*
}
-PREx(sys_setpriority, 0)
+PRE(sys_setpriority, 0)
{
PRINT("sys_setpriority ( %d, %d, %d )", arg1, arg2, arg3);
@@ -1733,5 +1730,5 @@ PREx(sys_setpriority, 0)
}
-PREx(sys_getpriority, 0)
+PRE(sys_getpriority, 0)
{
PRINT("sys_getpriority ( %d, %d )", arg1, arg2);
@@ -1739,5 +1736,5 @@ PREx(sys_getpriority, 0)
}
-PREx(sys_setfsgid16, 0)
+PRE(sys_setfsgid16, 0)
{
PRINT("sys_setfsgid16 ( %d )", arg1);
@@ -1745,5 +1742,5 @@ PREx(sys_setfsgid16, 0)
}
-PREx(sys_setregid16, 0)
+PRE(sys_setregid16, 0)
{
PRINT("sys_setregid16 ( %d, %d )", arg1, arg2);
@@ -1751,5 +1748,5 @@ PREx(sys_setregid16, 0)
}
-PREx(sys_setresuid16, 0)
+PRE(sys_setresuid16, 0)
{
PRINT("sys_setresuid16 ( %d, %d, %d )", arg1, arg2, arg3);
@@ -1758,5 +1755,5 @@ PREx(sys_setresuid16, 0)
}
-PREx(sys_setresuid, 0)
+PRE(sys_setresuid, 0)
{
PRINT("sys_setresuid ( %d, %d, %d )", arg1, arg2, arg3);
@@ -1765,5 +1762,5 @@ PREx(sys_setresuid, 0)
}
-PREx(sys_setfsuid16, 0)
+PRE(sys_setfsuid16, 0)
{
PRINT("sys_setfsuid16 ( %d )", arg1);
@@ -1771,5 +1768,5 @@ PREx(sys_setfsuid16, 0)
}
-PREx(sys_sendfile, MayBlock)
+PRE(sys_sendfile, MayBlock)
{
PRINT("sys_sendfile ( %d, %d, %p, %llu )", arg1,arg2,arg3,(ULong)arg4);
@@ -1781,10 +1778,10 @@ PREx(sys_sendfile, MayBlock)
}
-POSTx(sys_sendfile)
+POST(sys_sendfile)
{
POST_MEM_WRITE( arg3, sizeof( vki_off_t ) );
}
-PREx(sys_sendfile64, MayBlock)
+PRE(sys_sendfile64, MayBlock)
{
PRINT("sendfile64 ( %d, %d, %p, %llu )",arg1,arg2,arg3,(ULong)arg4);
@@ -1796,5 +1793,5 @@ PREx(sys_sendfile64, MayBlock)
}
-POSTx(sys_sendfile64)
+POST(sys_sendfile64)
{
if (arg3 != (UWord)NULL ) {
@@ -1804,5 +1801,5 @@ POSTx(sys_sendfile64)
// XXX: only for 32-bit archs
-PREx(sys_pwrite64, MayBlock)
+PRE(sys_pwrite64, MayBlock)
{
PRINT("sys_pwrite64 ( %d, %p, %llu, %lld )",
@@ -1814,5 +1811,5 @@ PREx(sys_pwrite64, MayBlock)
}
-PREx(sys_sync, MayBlock)
+PRE(sys_sync, MayBlock)
{
PRINT("sys_sync ( )");
@@ -1820,5 +1817,5 @@ PREx(sys_sync, MayBlock)
}
-PREx(sys_fstatfs, 0)
+PRE(sys_fstatfs, 0)
{
PRINT("sys_fstatfs ( %d, %p )",arg1,arg2);
@@ -1828,10 +1825,10 @@ PREx(sys_fstatfs, 0)
}
-POSTx(sys_fstatfs)
+POST(sys_fstatfs)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_statfs) );
}
-PREx(sys_fstatfs64, 0)
+PRE(sys_fstatfs64, 0)
{
PRINT("sys_fstatfs64 ( %d, %llu, %p )",arg1,(ULong)arg2,arg3);
@@ -1841,10 +1838,10 @@ PREx(sys_fstatfs64, 0)
}
-POSTx(sys_fstatfs64)
+POST(sys_fstatfs64)
{
POST_MEM_WRITE( arg3, arg2 );
}
-PREx(sys_getsid, 0)
+PRE(sys_getsid, 0)
{
PRINT("sys_getsid ( %d )", arg1);
@@ -1853,5 +1850,5 @@ PREx(sys_getsid, 0)
// XXX: only for 32-bit archs
-PREx(sys_pread64, MayBlock)
+PRE(sys_pread64, MayBlock)
{
PRINT("sys_pread64 ( %d, %p, %llu, %lld )",
@@ -1863,5 +1860,5 @@ PREx(sys_pread64, MayBlock)
}
-POSTx(sys_pread64)
+POST(sys_pread64)
{
if (res > 0) {
@@ -1870,5 +1867,5 @@ POSTx(sys_pread64)
}
-PREx(sys_mknod, 0)
+PRE(sys_mknod, 0)
{
PRINT("sys_mknod ( %p, 0x%x, 0x%x )", arg1, arg2, arg3 );
@@ -1878,5 +1875,5 @@ PREx(sys_mknod, 0)
}
-PREx(sys_flock, MayBlock)
+PRE(sys_flock, MayBlock)
{
PRINT("sys_flock ( %d, %d )", arg1, arg2 );
@@ -1884,5 +1881,5 @@ PREx(sys_flock, MayBlock)
}
-PREx(sys_init_module, MayBlock)
+PRE(sys_init_module, MayBlock)
{
PRINT("sys_init_module ( %p, %llu, %p )", arg1, (ULong)arg2, arg3 );
@@ -1893,5 +1890,5 @@ PREx(sys_init_module, MayBlock)
}
-PREx(sys_ioperm, 0)
+PRE(sys_ioperm, 0)
{
PRINT("sys_ioperm ( %d, %d, %d )", arg1, arg2, arg3 );
@@ -1900,5 +1897,5 @@ PREx(sys_ioperm, 0)
}
-PREx(sys_capget, 0)
+PRE(sys_capget, 0)
{
PRINT("sys_capget ( %p, %p )", arg1, arg2 );
@@ -1911,5 +1908,5 @@ PREx(sys_capget, 0)
}
-POSTx(sys_capget)
+POST(sys_capget)
{
if (arg2 != (Addr)NULL)
@@ -1917,5 +1914,5 @@ POSTx(sys_capget)
}
-PREx(sys_capset, 0)
+PRE(sys_capset, 0)
{
PRINT("sys_capset ( %p, %p )", arg1, arg2 );
@@ -1943,5 +1940,5 @@ void pre_argv_envp(Addr a, ThreadId tid,
// XXX: prototype here seemingly doesn't match the prototype for i386-linux,
// but it seems to work nonetheless...
-PREx(sys_execve, Special)
+PRE(sys_execve, Special)
{
PRINT("sys_execve ( %p(%s), %p, %p )", arg1, arg1, arg2, arg3);
@@ -2051,5 +2048,5 @@ PREx(sys_execve, Special)
}
-PREx(sys_access, 0)
+PRE(sys_access, 0)
{
PRINT("sys_access ( %p(%s), %d )", arg1,arg1,arg2);
@@ -2058,5 +2055,5 @@ PREx(sys_access, 0)
}
-PREx(sys_alarm, NBRunInLWP)
+PRE(sys_alarm, NBRunInLWP)
{
PRINT("sys_alarm ( %d )", arg1);
@@ -2064,5 +2061,5 @@ PREx(sys_alarm, NBRunInLWP)
}
-PREx(sys_brk, Special)
+PRE(sys_brk, Special)
{
Addr brk_limit = VG_(brk_limit);
@@ -2106,5 +2103,5 @@ PREx(sys_brk, Special)
}
-PREx(sys_chdir, 0)
+PRE(sys_chdir, 0)
{
PRINT("sys_chdir ( %p )", arg1);
@@ -2113,5 +2110,5 @@ PREx(sys_chdir, 0)
}
-PREx(sys_chmod, 0)
+PRE(sys_chmod, 0)
{
PRINT("sys_chmod ( %p, %d )", arg1,arg2);
@@ -2120,5 +2117,5 @@ PREx(sys_chmod, 0)
}
-PREx(sys_chown16, 0)
+PRE(sys_chown16, 0)
{
PRINT("sys_chown16 ( %p, 0x%x, 0x%x )", arg1,arg2,arg3);
@@ -2129,5 +2126,5 @@ PREx(sys_chown16, 0)
}
-PREx(sys_chown, 0)
+PRE(sys_chown, 0)
{
/* int chown(const char *path, uid_t owner, gid_t group); */
@@ -2138,5 +2135,5 @@ PREx(sys_chown, 0)
}
-PREx(sys_lchown, 0)
+PRE(sys_lchown, 0)
{
PRINT("sys_lchown ( %p, 0x%x, 0x%x )", arg1,arg2,arg3);
@@ -2146,5 +2143,5 @@ PREx(sys_lchown, 0)
}
-PREx(sys_close, 0)
+PRE(sys_close, 0)
{
PRINT("sys_close ( %d )", arg1);
@@ -2156,10 +2153,10 @@ PREx(sys_close, 0)
}
-POSTx(sys_close)
+POST(sys_close)
{
if (VG_(clo_track_fds)) record_fd_close(tid, arg1);
}
-PREx(sys_dup, 0)
+PRE(sys_dup, 0)
{
PRINT("sys_dup ( %d )", arg1);
@@ -2167,5 +2164,5 @@ PREx(sys_dup, 0)
}
-POSTx(sys_dup)
+POST(sys_dup)
{
if (!fd_allowed(res, "dup", tid, True)) {
@@ -2178,5 +2175,5 @@ POSTx(sys_dup)
}
-PREx(sys_dup2, 0)
+PRE(sys_dup2, 0)
{
PRINT("sys_dup2 ( %d, %d )", arg1,arg2);
@@ -2186,5 +2183,5 @@ PREx(sys_dup2, 0)
}
-POSTx(sys_dup2)
+POST(sys_dup2)
{
if (VG_(clo_track_fds))
@@ -2192,5 +2189,5 @@ POSTx(sys_dup2)
}
-PREx(sys_fcntl, 0)
+PRE(sys_fcntl, 0)
{
PRINT("sys_fcntl ( %d, %d, %d )", arg1,arg2,arg3);
@@ -2201,5 +2198,5 @@ PREx(sys_fcntl, 0)
}
-POSTx(sys_fcntl)
+POST(sys_fcntl)
{
if (arg2 == VKI_F_DUPFD) {
@@ -2214,5 +2211,5 @@ POSTx(sys_fcntl)
}
-PREx(sys_fchdir, 0)
+PRE(sys_fchdir, 0)
{
PRINT("sys_fchdir ( %d )", arg1);
@@ -2220,5 +2217,5 @@ PREx(sys_fchdir, 0)
}
-PREx(sys_fchown16, 0)
+PRE(sys_fchown16, 0)
{
PRINT("sys_fchown16 ( %d, %d, %d )", arg1,arg2,arg3);
@@ -2227,5 +2224,5 @@ PREx(sys_fchown16, 0)
}
-PREx(sys_fchown, 0)
+PRE(sys_fchown, 0)
{
PRINT("sys_fchown ( %d, %d, %d )", arg1,arg2,arg3);
@@ -2234,5 +2231,5 @@ PREx(sys_fchown, 0)
}
-PREx(sys_fchmod, 0)
+PRE(sys_fchmod, 0)
{
PRINT("sys_fchmod ( %d, %d )", arg1,arg2);
@@ -2241,5 +2238,5 @@ PREx(sys_fchmod, 0)
// XXX: wrapper only suitable for 32-bit systems
-PREx(sys_fcntl64, 0)
+PRE(sys_fcntl64, 0)
{
PRINT("sys_fcntl64 ( %d, %d, %d )", arg1,arg2,arg3);
@@ -2250,5 +2247,5 @@ PREx(sys_fcntl64, 0)
}
-POSTx(sys_fcntl64)
+POST(sys_fcntl64)
{
if (arg2 == VKI_F_DUPFD) {
@@ -2263,5 +2260,5 @@ POSTx(sys_fcntl64)
}
-PREx(sys_newfstat, 0)
+PRE(sys_newfstat, 0)
{
PRINT("sys_newfstat ( %d, %p )", arg1,arg2);
@@ -2270,5 +2267,5 @@ PREx(sys_newfstat, 0)
}
-POSTx(sys_newfstat)
+POST(sys_newfstat)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_stat) );
@@ -2279,5 +2276,5 @@ static vki_sigset_t fork_saved_mask;
// In Linux, the sys_fork() function varies across architectures, but we
// ignore the various args it gets, and so it looks arch-neutral. Hmm.
-PREx(sys_fork, 0)
+PRE(sys_fork, 0)
{
vki_sigset_t mask;
@@ -2296,5 +2293,5 @@ PREx(sys_fork, 0)
}
-POSTx(sys_fork)
+POST(sys_fork)
{
if (res == 0) {
@@ -2321,5 +2318,5 @@ POSTx(sys_fork)
// XXX: x86-specific
-PREx(sys_clone, Special)
+PRE(sys_clone, Special)
{
PRINT("sys_clone ( %d, %p, %p, %p, %p )",arg1,arg2,arg3,arg4,arg5);
@@ -2346,5 +2343,5 @@ PREx(sys_clone, Special)
}
-PREx(sys_ftruncate, MayBlock)
+PRE(sys_ftruncate, MayBlock)
{
PRINT("sys_ftruncate ( %d, %lld )", arg1,(ULong)arg2);
@@ -2352,5 +2349,5 @@ PREx(sys_ftruncate, MayBlock)
}
-PREx(sys_truncate, MayBlock)
+PRE(sys_truncate, MayBlock)
{
PRINT("sys_truncate ( %p(%s), %d )", arg1,arg1,arg2);
@@ -2361,5 +2358,5 @@ PREx(sys_truncate, MayBlock)
// XXX: this wrapper is only suitable for 32-bit platforms
-PREx(sys_ftruncate64, MayBlock)
+PRE(sys_ftruncate64, MayBlock)
{
PRINT("sys_ftruncate64 ( %d, %lld )", arg1, LOHI64(arg2,arg3));
@@ -2370,5 +2367,5 @@ PREx(sys_ftruncate64, MayBlock)
// XXX: this wrapper is only suitable for 32-bit platforms
-PREx(sys_truncate64, MayBlock)
+PRE(sys_truncate64, MayBlock)
{
PRINT("sys_truncate64 ( %p, %lld )", arg1, LOHI64(arg2, arg3));
@@ -2380,5 +2377,5 @@ PREx(sys_truncate64, MayBlock)
-PREx(sys_getdents, MayBlock)
+PRE(sys_getdents, MayBlock)
{
PRINT("sys_getdents ( %d, %p, %d )", arg1,arg2,arg3);
@@ -2389,5 +2386,5 @@ PREx(sys_getdents, MayBlock)
}
-POSTx(sys_getdents)
+POST(sys_getdents)
{
if (res > 0)
@@ -2395,5 +2392,5 @@ POSTx(sys_getdents)
}
-PREx(sys_getdents64, MayBlock)
+PRE(sys_getdents64, MayBlock)
{
PRINT("sys_getdents64 ( %d, %p, %d )",arg1,arg2,arg3);
@@ -2404,5 +2401,5 @@ PREx(sys_getdents64, MayBlock)
}
-POSTx(sys_getdents64)
+POST(sys_getdents64)
{
if (res > 0)
@@ -2410,5 +2407,5 @@ POSTx(sys_getdents64)
}
-PREx(sys_getgroups16, 0)
+PRE(sys_getgroups16, 0)
{
PRINT("sys_getgroups16 ( %d, %p )", arg1, arg2);
@@ -2418,5 +2415,5 @@ PREx(sys_getgroups16, 0)
}
-POSTx(sys_getgroups16)
+POST(sys_getgroups16)
{
if (arg1 > 0 && res > 0)
@@ -2424,5 +2421,5 @@ POSTx(sys_getgroups16)
}
-PREx(sys_getgroups, 0)
+PRE(sys_getgroups, 0)
{
PRINT("sys_getgroups ( %d, %p )", arg1, arg2);
@@ -2432,5 +2429,5 @@ PREx(sys_getgroups, 0)
}
-POSTx(sys_getgroups)
+POST(sys_getgroups)
{
if (arg1 > 0 && res > 0)
@@ -2438,5 +2435,5 @@ POSTx(sys_getgroups)
}
-PREx(sys_getcwd, 0)
+PRE(sys_getcwd, 0)
{
// Note that the kernel version of getcwd() behaves quite differently to
@@ -2447,5 +2444,5 @@ PREx(sys_getcwd, 0)
}
-POSTx(sys_getcwd)
+POST(sys_getcwd)
{
if (res != (Addr)NULL)
@@ -2453,5 +2450,5 @@ POSTx(sys_getcwd)
}
-PREx(sys_geteuid16, 0)
+PRE(sys_geteuid16, 0)
{
PRINT("sys_geteuid16 ( )");
@@ -2459,5 +2456,5 @@ PREx(sys_geteuid16, 0)
}
-PREx(sys_geteuid, 0)
+PRE(sys_geteuid, 0)
{
PRINT("sys_geteuid ( )");
@@ -2465,5 +2462,5 @@ PREx(sys_geteuid, 0)
}
-PREx(sys_getegid16, 0)
+PRE(sys_getegid16, 0)
{
PRINT("sys_getegid16 ( )");
@@ -2471,5 +2468,5 @@ PREx(sys_getegid16, 0)
}
-PREx(sys_getegid, 0)
+PRE(sys_getegid, 0)
{
PRINT("sys_getegid ( )");
@@ -2477,5 +2474,5 @@ PREx(sys_getegid, 0)
}
-PREx(sys_getgid16, 0)
+PRE(sys_getgid16, 0)
{
PRINT("sys_getgid16 ( )");
@@ -2483,5 +2480,5 @@ PREx(sys_getgid16, 0)
}
-PREx(sys_getgid, 0)
+PRE(sys_getgid, 0)
{
PRINT("sys_getgid ( )");
@@ -2489,5 +2486,5 @@ PREx(sys_getgid, 0)
}
-PREx(sys_getpid, 0)
+PRE(sys_getpid, 0)
{
PRINT("sys_getpid ()");
@@ -2495,5 +2492,5 @@ PREx(sys_getpid, 0)
}
-PREx(sys_getpgid, 0)
+PRE(sys_getpgid, 0)
{
PRINT("sys_getpgid ( %d )", arg1);
@@ -2501,5 +2498,5 @@ PREx(sys_getpgid, 0)
}
-PREx(sys_getpgrp, 0)
+PRE(sys_getpgrp, 0)
{
PRINT("sys_getpgrp ()");
@@ -2507,5 +2504,5 @@ PREx(sys_getpgrp, 0)
}
-PREx(sys_getppid, 0)
+PRE(sys_getppid, 0)
{
PRINT("sys_getppid ()");
@@ -2513,5 +2510,5 @@ PREx(sys_getppid, 0)
}
-PREx(sys_getresgid16, 0)
+PRE(sys_getresgid16, 0)
{
PRINT("sys_getresgid16 ( %p, %p, %p )", arg1,arg2,arg3);
@@ -2524,5 +2521,5 @@ PREx(sys_getresgid16, 0)
}
-POSTx(sys_getresgid16)
+POST(sys_getresgid16)
{
if (res == 0) {
@@ -2533,5 +2530,5 @@ POSTx(sys_getresgid16)
}
-PREx(sys_getresgid, 0)
+PRE(sys_getresgid, 0)
{
PRINT("sys_getresgid ( %p, %p, %p )", arg1,arg2,arg3);
@@ -2543,5 +2540,5 @@ PREx(sys_getresgid, 0)
}
-POSTx(sys_getresgid)
+POST(sys_getresgid)
{
if (res == 0) {
@@ -2552,5 +2549,5 @@ POSTx(sys_getresgid)
}
-PREx(sys_getresuid16, 0)
+PRE(sys_getresuid16, 0)
{
PRINT("sys_getresuid16 ( %p, %p, %p )", arg1,arg2,arg3);
@@ -2563,5 +2560,5 @@ PREx(sys_getresuid16, 0)
}
-POSTx(sys_getresuid16)
+POST(sys_getresuid16)
{
if (res == 0) {
@@ -2572,5 +2569,5 @@ POSTx(sys_getresuid16)
}
-PREx(sys_getresuid, 0)
+PRE(sys_getresuid, 0)
{
PRINT("sys_getresuid ( %p, %p, %p )", arg1,arg2,arg3);
@@ -2582,5 +2579,5 @@ PREx(sys_getresuid, 0)
}
-POSTx(sys_getresuid)
+POST(sys_getresuid)
{
if (res == 0) {
@@ -2611,5 +2608,5 @@ static void common_post_getrlimit(UWord
}
-PREx(sys_old_getrlimit, 0)
+PRE(sys_old_getrlimit, 0)
{
PRINT("sys_old_getrlimit ( %d, %p )", arg1,arg2);
@@ -2619,10 +2616,10 @@ PREx(sys_old_getrlimit, 0)
}
-POSTx(sys_old_getrlimit)
+POST(sys_old_getrlimit)
{
common_post_getrlimit(arg1, arg2);
}
-PREx(sys_getrlimit, 0)
+PRE(sys_getrlimit, 0)
{
PRINT("sys_getrlimit ( %d, %p )", arg1,arg2);
@@ -2632,10 +2629,10 @@ PREx(sys_getrlimit, 0)
}
-POSTx(sys_getrlimit)
+POST(sys_getrlimit)
{
common_post_getrlimit(arg1, arg2);
}
-PREx(sys_getrusage, 0)
+PRE(sys_getrusage, 0)
{
/* int getrusage (int who, struct rusage *usage); */
@@ -2645,5 +2642,5 @@ PREx(sys_getrusage, 0)
}
-POSTx(sys_getrusage)
+POST(sys_getrusage)
{
if (res == 0)
@@ -2651,5 +2648,5 @@ POSTx(sys_getrusage)
}
-PREx(sys_gettimeofday, 0)
+PRE(sys_gettimeofday, 0)
{
PRINT("sys_gettimeofday ( %p, %p )", arg1,arg2);
@@ -2661,5 +2658,5 @@ PREx(sys_gettimeofday, 0)
}
-POSTx(sys_gettimeofday)
+POST(sys_gettimeofday)
{
if (res == 0) {
@@ -2670,5 +2667,5 @@ POSTx(sys_gettimeofday)
}
-PREx(sys_settimeofday, 0)
+PRE(sys_settimeofday, 0)
{
PRINT("sys_settimeofday ( %p, %p )", arg1,arg2);
@@ -2682,5 +2679,5 @@ PREx(sys_settimeofday, 0)
}
-PREx(sys_getuid16, 0)
+PRE(sys_getuid16, 0)
{
PRINT("sys_getuid16 ( )");
@@ -2688,5 +2685,5 @@ PREx(sys_getuid16, 0)
}
-PREx(sys_getuid, 0)
+PRE(sys_getuid, 0)
{
PRINT("sys_getuid ( )");
@@ -2696,5 +2693,5 @@ PREx(sys_getuid, 0)
// XXX: x86-specific
// XXX: should use the constants here (eg. SHMAT), not the numbers directly!
-PREx(sys_ipc, 0)
+PRE(sys_ipc, 0)
{
PRINT("sys_ipc ( %d, %d, %d, %d, %p, %d )", arg1,arg2,arg3,arg4,arg5,arg6);
@@ -2958,5 +2955,5 @@ PREx(sys_ipc, 0)
}
-POSTx(sys_ipc)
+POST(sys_ipc)
{
switch (arg1 /* call */) {
@@ -3139,5 +3136,5 @@ POSTx(sys_ipc)
// XXX: I reckon some of these cases must be x86-specific
-PREx(sys_ioctl, MayBlock)
+PRE(sys_ioctl, MayBlock)
{
PRINT("sys_ioctl ( %d, 0x%x, %p )",arg1,arg2,arg3);
@@ -3902,5 +3899,5 @@ PREx(sys_ioctl, MayBlock)
}
-POSTx(sys_ioctl)
+POST(sys_ioctl)
{
switch (arg2 /* request */) {
@@ -4412,5 +4409,5 @@ POSTx(sys_ioctl)
}
-PREx(sys_kill, 0)
+PRE(sys_kill, 0)
{
/* int kill(pid_t pid, int sig); */
@@ -4421,5 +4418,5 @@ PREx(sys_kill, 0)
}
-POSTx(sys_kill)
+POST(sys_kill)
{
/* If this was a self-kill then wait for a signal to be
@@ -4439,5 +4436,5 @@ POSTx(sys_kill)
}
-PREx(sys_link, MayBlock)
+PRE(sys_link, MayBlock)
{
PRINT("sys_link ( %p, %p)", arg1, arg2);
@@ -4447,5 +4444,5 @@ PREx(sys_link, MayBlock)
}
-PREx(sys_lseek, 0)
+PRE(sys_lseek, 0)
{
PRINT("sys_lseek ( %d, %d, %d )", arg1,arg2,arg3);
@@ -4454,5 +4451,5 @@ PREx(sys_lseek, 0)
}
-PREx(sys_llseek, 0)
+PRE(sys_llseek, 0)
{
PRINT("sys_llseek ( %d, 0x%x, 0x%x, %p, %d )", arg1,arg2,arg3,arg4,arg5);
@@ -4464,5 +4461,5 @@ PREx(sys_llseek, 0)
}
-POSTx(sys_llseek)
+POST(sys_llseek)
{
if (res == 0)
@@ -4470,5 +4467,5 @@ POSTx(sys_llseek)
}
-PREx(sys_newlstat, 0)
+PRE(sys_newlstat, 0)
{
PRINT("sys_newlstat ( %p(%s), %p )", arg1,arg1,arg2);
@@ -4478,5 +4475,5 @@ PREx(sys_newlstat, 0)
}
-POSTx(sys_newlstat)
+POST(sys_newlstat)
{
if (res == 0) {
@@ -4485,5 +4482,5 @@ POSTx(sys_newlstat)
}
-PREx(sys_lstat64, 0)
+PRE(sys_lstat64, 0)
{
PRINT("sys_lstat64 ( %p(%s), %p )",arg1,arg1,arg2);
@@ -4493,5 +4490,5 @@ PREx(sys_lstat64, 0)
}
-POSTx(sys_lstat64)
+POST(sys_lstat64)
{
if (res == 0) {
@@ -4500,5 +4497,5 @@ POSTx(sys_lstat64)
}
-PREx(sys_mkdir, MayBlock)
+PRE(sys_mkdir, MayBlock)
{
PRINT("sys_mkdir ( %p, %d )", arg1,arg2);
@@ -4507,5 +4504,5 @@ PREx(sys_mkdir, MayBlock)
}
-PREx(sys_mmap2, 0)
+PRE(sys_mmap2, 0)
{
// Exactly like old_mmap() except:
@@ -4532,5 +4529,5 @@ PREx(sys_mmap2, 0)
}
-POSTx(sys_mmap2)
+POST(sys_mmap2)
{
vg_assert(valid_client_addr(res, arg2, tid, "mmap2"));
@@ -4539,5 +4536,5 @@ POSTx(sys_mmap2)
}
-PREx(old_mmap, Special)
+PRE(old_mmap, Special)
{
/* struct mmap_arg_struct {
@@ -4580,5 +4577,5 @@ PREx(old_mmap, Special)
}
-PREx(sys_mprotect, 0)
+PRE(sys_mprotect, 0)
{
PRINT("sys_mprotect ( %p, %llu, %d )", arg1,(ULong)arg2,arg3);
@@ -4590,5 +4587,5 @@ PREx(sys_mprotect, 0)
}
-POSTx(sys_mprotect)
+POST(sys_mprotect)
{
Addr a = arg1;
@@ -4604,5 +4601,5 @@ POSTx(sys_mprotect)
}
-PREx(sys_munmap, 0)
+PRE(sys_munmap, 0)
{
PRINT("sys_munmap ( %p, %llu )", arg1,(ULong)arg2);
@@ -4613,5 +4610,5 @@ PREx(sys_munmap, 0)
}
-POSTx(sys_munmap)
+POST(sys_munmap)
{
Addr a = arg1;
@@ -4623,5 +4620,5 @@ POSTx(sys_munmap)
}
-PREx(sys_mincore, 0)
+PRE(sys_mincore, 0)
{
PRINT("sys_mincore ( %p, %llu, %p )", arg1,(ULong)arg2,arg3);
@@ -4632,10 +4629,10 @@ PREx(sys_mincore, 0)
}
-POSTx(sys_mincore)
+POST(sys_mincore)
{
POST_MEM_WRITE( arg3, (arg2 + 4096 - 1) / 4096 );
}
-PREx(sys_nanosleep, MayBlock|PostOnFail)
+PRE(sys_nanosleep, MayBlock|PostOnFail)
{
PRINT("sys_nanosleep ( %p, %p )", arg1,arg2);
@@ -4647,5 +4644,5 @@ PREx(sys_nanosleep, MayBlock|PostOnFail)
}
-POSTx(sys_nanosleep)
+POST(sys_nanosleep)
{
if (arg2 != (UWord)NULL && res == -VKI_EINTR)
@@ -4653,5 +4650,5 @@ POSTx(sys_nanosleep)
}
-PREx(sys_open, MayBlock)
+PRE(sys_open, MayBlock)
{
if (arg2 & VKI_O_CREAT) {
@@ -4669,5 +4666,5 @@ PREx(sys_open, MayBlock)
}
-POSTx(sys_open)
+POST(sys_open)
{
if (!fd_allowed(res, "open", tid, True)) {
@@ -4680,5 +4677,5 @@ POSTx(sys_open)
}
-PREx(sys_read, MayBlock)
+PRE(sys_read, MayBlock)
{
PRINT("sys_read ( %d, %p, %llu )", arg1, arg2, (ULong)arg3);
@@ -4692,10 +4689,10 @@ PREx(sys_read, MayBlock)
}
-POSTx(sys_read)
+POST(sys_read)
{
POST_MEM_WRITE( arg2, res );
}
-PREx(sys_write, MayBlock)
+PRE(sys_write, MayBlock)
{
PRINT("sys_write ( %d, %p, %llu )", arg1, arg2, (ULong)arg3);
@@ -4708,5 +4705,5 @@ PREx(sys_write, MayBlock)
}
-PREx(sys_creat, MayBlock)
+PRE(sys_creat, MayBlock)
{
PRINT("sys_creat ( %p(%s), %d )", arg1,arg1,arg2);
@@ -4715,5 +4712,5 @@ PREx(sys_creat, MayBlock)
}
-POSTx(sys_creat)
+POST(sys_creat)
{
if (!fd_allowed(res, "creat", tid, True)) {
@@ -4727,5 +4724,5 @@ POSTx(sys_creat)
// XXX: sort of x86-specific
-PREx(sys_pipe, 0)
+PRE(sys_pipe, 0)
{
PRINT("sys_pipe ( %p )", arg1);
@@ -4734,5 +4731,5 @@ PREx(sys_pipe, 0)
}
-POSTx(sys_pipe)
+POST(sys_pipe)
{
// XXX: use of Int here -- 32-bit-specific?
@@ -4754,5 +4751,5 @@ POSTx(sys_pipe)
// XXX: x86-specific, due to pollfd struct
-PREx(sys_poll, MayBlock)
+PRE(sys_poll, MayBlock)
{
/* struct pollfd {
@@ -4779,5 +4776,5 @@ PREx(sys_poll, MayBlock)
}
-POSTx(sys_poll)
+POST(sys_poll)
{
if (res > 0) {
@@ -4790,5 +4787,5 @@ POSTx(sys_poll)
}
-PREx(sys_epoll_create, 0)
+PRE(sys_epoll_create, 0)
{
PRINT("sys_epoll_create ( %d )", arg1);
@@ -4796,5 +4793,5 @@ PREx(sys_epoll_create, 0)
}
-POSTx(sys_epoll_create)
+POST(sys_epoll_create)
{
if (!fd_allowed(res, "epoll_create", tid, True)) {
@@ -4807,5 +4804,5 @@ POSTx(sys_epoll_create)
}
-PREx(sys_epoll_ctl, 0)
+PRE(sys_epoll_ctl, 0)
{
static const char* epoll_ctl_s[3] = {
@@ -4821,5 +4818,5 @@ PREx(sys_epoll_ctl, 0)
}
-PREx(sys_epoll_wait, MayBlock)
+PRE(sys_epoll_wait, MayBlock)
{
PRINT("sys_epoll_wait ( %d, %p, %d, %d )", arg1, arg2, arg3, arg4);
@@ -4830,5 +4827,5 @@ PREx(sys_epoll_wait, MayBlock)
}
-POSTx(sys_epoll_wait)
+POST(sys_epoll_wait)
{
if (res > 0)
@@ -4836,5 +4833,5 @@ POSTx(sys_epoll_wait)
}
-PREx(sys_readlink, 0)
+PRE(sys_readlink, 0)
{
PRINT("sys_readlink ( %p, %p, %llu )", arg1,arg2,(ULong)arg3);
@@ -4845,10 +4842,10 @@ PREx(sys_readlink, 0)
}
-POSTx(sys_readlink)
+POST(sys_readlink)
{
POST_MEM_WRITE( arg2, res );
}
-PREx(sys_readv, MayBlock)
+PRE(sys_readv, MayBlock)
{
Int i;
@@ -4873,5 +4870,5 @@ PREx(sys_readv, MayBlock)
}
-POSTx(sys_readv)
+POST(sys_readv)
{
if (res > 0) {
@@ -4891,5 +4888,5 @@ POSTx(sys_readv)
}
-PREx(sys_rename, 0)
+PRE(sys_rename, 0)
{
PRINT("sys_rename ( %p, %p )", arg1, arg2 );
@@ -4899,5 +4896,5 @@ PREx(sys_rename, 0)
}
-PREx(sys_rmdir, MayBlock)
+PRE(sys_rmdir, MayBlock)
{
PRINT("sys_rmdir ( %p )", arg1);
@@ -4906,5 +4903,5 @@ PREx(sys_rmdir, MayBlock)
}
-PREx(sys_sched_setparam, 0/*???*/)
+PRE(sys_sched_setparam, 0)
{
PRINT("sched_setparam ( %d, %p )", arg1, arg2 );
@@ -4914,10 +4911,10 @@ PREx(sys_sched_setparam, 0/*???*/)
}
-POSTx(sys_sched_setparam)
+POST(sys_sched_setparam)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_sched_param) );
}
-PREx(sys_sched_getparam, 0/*???*/)
+PRE(sys_sched_getparam, 0)
{
PRINT("sched_getparam ( %d, %p )", arg1, arg2 );
@@ -4927,10 +4924,10 @@ PREx(sys_sched_getparam, 0/*???*/)
}
-POSTx(sys_sched_getparam)
+POST(sys_sched_getparam)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_sched_param) );
}
-PREx(old_select, MayBlock)
+PRE(old_select, MayBlock)
{
/* struct sel_arg_struct {
@@ -4965,5 +4962,5 @@ PREx(old_select, MayBlock)
}
-PREx(sys_select, MayBlock)
+PRE(sys_select, MayBlock)
{
PRINT("sys_select ( %d, %p, %p, %p, %p )", arg1,arg2,arg3,arg4,arg5);
@@ -4985,5 +4982,5 @@ PREx(sys_select, MayBlock)
}
-PREx(sys_setfsgid, 0)
+PRE(sys_setfsgid, 0)
{
PRINT("sys_setfsgid ( %d )", arg1);
@@ -4991,5 +4988,5 @@ PREx(sys_setfsgid, 0)
}
-PREx(sys_setgid16, 0)
+PRE(sys_setgid16, 0)
{
PRINT("sys_setgid16 ( %d )", arg1);
@@ -4997,5 +4994,5 @@ PREx(sys_setgid16, 0)
}
-PREx(sys_setgid, 0)
+PRE(sys_setgid, 0)
{
PRINT("sys_setgid ( %d )", arg1);
@@ -5003,5 +5000,5 @@ PREx(sys_setgid, 0)
}
-PREx(sys_setsid, 0)
+PRE(sys_setsid, 0)
{
PRINT("sys_setsid ( )");
@@ -5009,5 +5006,5 @@ PREx(sys_setsid, 0)
}
-PREx(sys_setgroups16, 0)
+PRE(sys_setgroups16, 0)
{
PRINT("sys_setgroups16 ( %llu, %p )", (ULong)arg1, arg2);
@@ -5017,5 +5014,5 @@ PREx(sys_setgroups16, 0)
}
-PREx(sys_setgroups, 0)
+PRE(sys_setgroups, 0)
{
PRINT("setgroups ( %llu, %p )", (ULong)arg1, arg2);
@@ -5025,5 +5022,5 @@ PREx(sys_setgroups, 0)
}
-PREx(sys_setpgid, 0)
+PRE(sys_setpgid, 0)
{
PRINT("setpgid ( %d, %d )", arg1, arg2);
@@ -5031,10 +5028,10 @@ PREx(sys_setpgid, 0)
}
-POSTx(sys_setpgid)
+POST(sys_setpgid)
{
VG_(main_pgrp) = VG_(getpgrp)();
}
-PREx(sys_setregid, 0)
+PRE(sys_setregid, 0)
{
PRINT("sys_setregid ( %d, %d )", arg1, arg2);
@@ -5042,5 +5039,5 @@ PREx(sys_setregid, 0)
}
-PREx(sys_setreuid16, 0)
+PRE(sys_setreuid16, 0)
{
PRINT("setreuid16 ( 0x%x, 0x%x )", arg1, arg2);
@@ -5048,5 +5045,5 @@ PREx(sys_setreuid16, 0)
}
-PREx(sys_setreuid, 0)
+PRE(sys_setreuid, 0)
{
PRINT("sys_setreuid ( 0x%x, 0x%x )", arg1, arg2);
@@ -5054,5 +5051,5 @@ PREx(sys_setreuid, 0)
}
-PREx(sys_setrlimit, 0)
+PRE(sys_setrlimit, 0)
{
PRINT("sys_setrlimit ( %d, %p )", arg1,arg2);
@@ -5094,5 +5091,5 @@ PREx(sys_setrlimit, 0)
}
-PREx(sys_setuid16, 0)
+PRE(sys_setuid16, 0)
{
PRINT("sys_setuid16 ( %d )", arg1);
@@ -5100,5 +5097,5 @@ PREx(sys_setuid16, 0)
}
-PREx(sys_setuid, 0)
+PRE(sys_setuid, 0)
{
PRINT("sys_setuid ( %d )", arg1);
@@ -5106,5 +5103,5 @@ PREx(sys_setuid, 0)
}
-PREx(sys_socketcall, MayBlock)
+PRE(sys_socketcall, MayBlock)
{
PRINT("sys_socketcall ( %d, %p )",arg1,arg2);
@@ -5307,5 +5304,5 @@ PREx(sys_socketcall, MayBlock)
}
-POSTx(sys_socketcall)
+POST(sys_socketcall)
{
switch (arg1 /* request */) {
@@ -5455,5 +5452,5 @@ POSTx(sys_socketcall)
}
-PREx(sys_newstat, 0)
+PRE(sys_newstat, 0)
{
PRINT("sys_newstat ( %p(%s), %p )", arg1,arg1,arg2);
@@ -5463,10 +5460,10 @@ PREx(sys_newstat, 0)
}
-POSTx(sys_newstat)
+POST(sys_newstat)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_stat) );
}
-PREx(sys_statfs, 0)
+PRE(sys_statfs, 0)
{
PRINT("sys_statfs ( %p, %p )",arg1,arg2);
@@ -5476,10 +5473,10 @@ PREx(sys_statfs, 0)
}
-POSTx(sys_statfs)
+POST(sys_statfs)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_statfs) );
}
-PREx(sys_statfs64, 0)
+PRE(sys_statfs64, 0)
{
PRINT("sys_statfs64 ( %p, %llu, %p )",arg1,(ULong)arg2,arg3);
@@ -5490,10 +5487,10 @@ PREx(sys_statfs64, 0)
}
-POSTx(sys_statfs64)
+POST(sys_statfs64)
{
POST_MEM_WRITE( arg3, arg2 );
}
-PREx(sys_symlink, MayBlock)
+PRE(sys_symlink, MayBlock)
{
PRINT("sys_symlink ( %p, %p )",arg1,arg2);
@@ -5503,5 +5500,5 @@ PREx(sys_symlink, MayBlock)
}
-PREx(sys_stat64, 0)
+PRE(sys_stat64, 0)
{
PRINT("sys_stat64 ( %p, %p )",arg1,arg2);
@@ -5511,10 +5508,10 @@ PREx(sys_stat64, 0)
}
-POSTx(sys_stat64)
+POST(sys_stat64)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_stat64) );
}
-PREx(sys_fstat64, 0)
+PRE(sys_fstat64, 0)
{
PRINT("sys_fstat64 ( %d, %p )",arg1,arg2);
@@ -5523,10 +5520,10 @@ PREx(sys_fstat64, 0)
}
-POSTx(sys_fstat64)
+POST(sys_fstat64)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_stat64) );
}
-PREx(sys_sysinfo, 0)
+PRE(sys_sysinfo, 0)
{
PRINT("sys_sysinfo ( %p )",arg1);
@@ -5535,10 +5532,10 @@ PREx(sys_sysinfo, 0)
}
-POSTx(sys_sysinfo)
+POST(sys_sysinfo)
{
POST_MEM_WRITE( arg1, sizeof(struct vki_sysinfo) );
}
-PREx(sys_time, 0)
+PRE(sys_time, 0)
{
/* time_t time(time_t *t); */
@@ -5550,5 +5547,5 @@ PREx(sys_time, 0)
}
-POSTx(sys_time)
+POST(sys_time)
{
if (arg1 != (UWord)NULL) {
@@ -5557,5 +5554,5 @@ POSTx(sys_time)
}
-PREx(sys_times, 0)
+PRE(sys_times, 0)
{
PRINT("sys_times ( %p )", arg1);
@@ -5564,5 +5561,5 @@ PREx(sys_times, 0)
}
-POSTx(sys_times)
+POST(sys_times)
{
if (arg1 != (UWord)NULL) {
@@ -5571,5 +5568,5 @@ POSTx(sys_times)
}
-PREx(sys_umask, 0)
+PRE(sys_umask, 0)
{
PRINT("sys_umask ( %d )", arg1);
@@ -5577,5 +5574,5 @@ PREx(sys_umask, 0)
}
-PREx(sys_unlink, MayBlock)
+PRE(sys_unlink, MayBlock)
{
PRINT("sys_unlink ( %p(%s) )", arg1,arg1);
@@ -5584,5 +5581,5 @@ PREx(sys_unlink, MayBlock)
}
-PREx(sys_newuname, 0)
+PRE(sys_newuname, 0)
{
PRINT("sys_newuname ( %p )", arg1);
@@ -5591,5 +5588,5 @@ PREx(sys_newuname, 0)
}
-POSTx(sys_newuname)
+POST(sys_newuname)
{
if (arg1 != (UWord)NULL) {
@@ -5598,5 +5595,5 @@ POSTx(sys_newuname)
}
-PREx(sys_utime, MayBlock)
+PRE(sys_utime, MayBlock)
{
PRINT("sys_utime ( %p, %p )", arg1,arg2);
@@ -5607,5 +5604,5 @@ PREx(sys_utime, MayBlock)
}
-PREx(sys_waitpid, MayBlock)
+PRE(sys_waitpid, MayBlock)
{
PRINT("sys_waitpid ( %d, %p, %d )", arg1,arg2,arg3);
@@ -5617,5 +5614,5 @@ PREx(sys_waitpid, MayBlock)
}
-POSTx(sys_waitpid)
+POST(sys_waitpid)
{
if (arg2 != (Addr)NULL)
@@ -5623,5 +5620,5 @@ POSTx(sys_waitpid)
}
-PREx(sys_wait4, MayBlock)
+PRE(sys_wait4, MayBlock)
{
PRINT("sys_wait4 ( %d, %p, %d, %p )", arg1,arg2,arg3,arg4);
@@ -5637,5 +5634,5 @@ PREx(sys_wait4, MayBlock)
}
-POSTx(sys_wait4)
+POST(sys_wait4)
{
if (arg2 != (Addr)NULL)
@@ -5645,5 +5642,5 @@ POSTx(sys_wait4)
}
-PREx(sys_writev, MayBlock)
+PRE(sys_writev, MayBlock)
{
Int i;
@@ -5668,5 +5665,5 @@ PREx(sys_writev, MayBlock)
}
-PREx(sys_prctl, MayBlock)
+PRE(sys_prctl, MayBlock)
{
PRINT( "prctl ( %d, %d, %d, %d, %d )", arg1, arg2, arg3, arg4, arg5 );
@@ -5680,5 +5677,5 @@ PREx(sys_prctl, MayBlock)
}
-PREx(sys_adjtimex, 0)
+PRE(sys_adjtimex, 0)
{
struct vki_timex *tx = (struct vki_timex *)arg1;
@@ -5702,10 +5699,10 @@ PREx(sys_adjtimex, 0)
}
-POSTx(sys_adjtimex)
+POST(sys_adjtimex)
{
VG_TRACK(post_mem_write, arg1, sizeof(struct vki_timex));
}
-PREx(sys_utimes, 0)
+PRE(sys_utimes, 0)
{
PRINT("sys_utimes ( %p, %p )", arg1,arg2);
@@ -5716,5 +5713,5 @@ PREx(sys_utimes, 0)
}
-PREx(sys_futex, MayBlock)
+PRE(sys_futex, MayBlock)
{
PRINT("sys_futex ( %p, %d, %d, %p, %p )", arg1,arg2,arg3,arg4,arg5);
@@ -5729,5 +5726,5 @@ PREx(sys_futex, MayBlock)
}
-POSTx(sys_futex)
+POST(sys_futex)
{
POST_MEM_WRITE( arg1, sizeof(int) );
@@ -5743,5 +5740,5 @@ POSTx(sys_futex)
}
-PREx(sys_sched_setaffinity, 0)
+PRE(sys_sched_setaffinity, 0)
{
PRINT("sched_setaffinity ( %d, %d, %p )", arg1, arg2, arg3);
@@ -5751,5 +5748,5 @@ PREx(sys_sched_setaffinity, 0)
}
-PREx(sys_sched_getaffinity, 0)
+PRE(sys_sched_getaffinity, 0)
{
PRINT("sched_getaffinity ( %d, %d, %p )", arg1, arg2, arg3);
@@ -5759,10 +5756,10 @@ PREx(sys_sched_getaffinity, 0)
}
-POSTx(sys_sched_getaffinity)
+POST(sys_sched_getaffinity)
{
VG_TRACK(post_mem_write, arg3, arg2);
}
-PREx(sys_acct, 0)
+PRE(sys_acct, 0)
{
PRINT("sys_acct ( %p )", arg1);
@@ -5771,5 +5768,5 @@ PREx(sys_acct, 0)
}
-PREx(sys_pause, MayBlock)
+PRE(sys_pause, MayBlock)
{
PRINT("sys_pause ( )");
@@ -5778,5 +5775,5 @@ PREx(sys_pause, MayBlock)
// XXX: x86-specific
-PREx(sys_sigsuspend, MayBlock)
+PRE(sys_sigsuspend, MayBlock)
{
/* The C library interface to sigsuspend just takes a pointer to
@@ -5796,5 +5793,5 @@ PREx(sys_sigsuspend, MayBlock)
// XXX: x86-specific
-PREx(sys_rt_sigsuspend, MayBlock)
+PRE(sys_rt_sigsuspend, MayBlock)
{
/* The C library interface to sigsuspend just takes a pointer to
@@ -5811,5 +5808,5 @@ PREx(sys_rt_sigsuspend, MayBlock)
}
-PREx(sys_rt_sigtimedwait, MayBlock)
+PRE(sys_rt_sigtimedwait, MayBlock)
{
PRINT("sys_rt_sigtimedwait ( %p, %p, %p, %lld )",
@@ -5826,5 +5823,5 @@ PREx(sys_rt_sigtimedwait, MayBlock)
}
-POSTx(sys_rt_sigtimedwait)
+POST(sys_rt_sigtimedwait)
{
if (arg2 != (UWord)NULL)
@@ -5832,5 +5829,5 @@ POSTx(sys_rt_sigtimedwait)
}
-PREx(sys_rt_sigqueueinfo, 0)
+PRE(sys_rt_sigqueueinfo, 0)
{
PRINT("sys_rt_sigqueueinfo(%d, %d, %p)", arg1, arg2, arg3);
@@ -5841,5 +5838,5 @@ PREx(sys_rt_sigqueueinfo, 0)
}
-POSTx(sys_rt_sigqueueinfo)
+POST(sys_rt_sigqueueinfo)
{
if (res >= 0 &&
@@ -5861,5 +5858,5 @@ POSTx(sys_rt_sigqueueinfo)
// XXX: x86-specific
-PREx(sys_sigaltstack, SIG_SIM)
+PRE(sys_sigaltstack, SIG_SIM)
{
/* int sigaltstack(const stack_t *ss, stack_t *oss); */
@@ -5878,5 +5875,5 @@ PREx(sys_sigaltstack, SIG_SIM)
}
-POSTx(sys_sigaltstack)
+POST(sys_sigaltstack)
{
if (res == 0 && arg2 != (UWord)NULL)
@@ -5885,5 +5882,5 @@ POSTx(sys_sigaltstack)
// XXX: x86-specific
-PREx(sys_sigaction, SIG_SIM)
+PRE(sys_sigaction, SIG_SIM)
{
PRINT("sys_sigaction ( %d, %p, %p )", arg1,arg2,arg3);
@@ -5900,5 +5897,5 @@ PREx(sys_sigaction, SIG_SIM)
}
-POSTx(sys_sigaction)
+POST(sys_sigaction)
{
if (res == 0 && arg3 != (UWord)NULL)
@@ -5907,11 +5904,10 @@ POSTx(sys_sigaction)
// XXX: x86-specific
-PREx(sys_rt_sigaction, SIG_SIM)
+PRE(sys_rt_sigaction, SIG_SIM)
{
PRINT("sys_rt_sigaction ( %d, %p, %p, %d )", arg1,arg2,arg3,arg4);
PRE_REG_READ4(long, "rt_sigaction",
int, signum, const struct sigaction *, act,
- struct sigaction *, oldact,
- vki_size_t, sigsetsize);
+ struct sigaction *, oldact, vki_size_t, sigsetsize);
if (arg2 != (UWord)NULL)
@@ -5925,5 +5921,5 @@ PREx(sys_rt_sigaction, SIG_SIM)
}
-POSTx(sys_rt_sigaction)
+POST(sys_rt_sigaction)
{
if (res == 0 && arg3 != (UWord)NULL)
@@ -5931,5 +5927,5 @@ POSTx(sys_rt_sigaction)
}
-PREx(sys_sigprocmask, SIG_SIM)
+PRE(sys_sigprocmask, SIG_SIM)
{
PRINT("sys_sigprocmask ( %d, %p, %p )",arg1,arg2,arg3);
@@ -5962,5 +5958,5 @@ PREx(sys_sigprocmask, SIG_SIM)
}
-POSTx(sys_sigprocmask)
+POST(sys_sigprocmask)
{
if (res == 0 && arg3 != (UWord)NULL)
@@ -5968,5 +5964,5 @@ POSTx(sys_sigprocmask)
}
-PREx(sys_rt_sigprocmask, SIG_SIM)
+PRE(sys_rt_sigprocmask, SIG_SIM)
{
PRINT("sys_rt_sigprocmask ( %d, %p, %p, %llu )",arg1,arg2,arg3,(ULong)arg4);
@@ -5989,5 +5985,5 @@ PREx(sys_rt_sigprocmask, SIG_SIM)
}
-POSTx(sys_rt_sigprocmask)
+POST(sys_rt_sigprocmask)
{
if (res == 0 && arg3 != (UWord)NULL)
@@ -5995,5 +5991,5 @@ POSTx(sys_rt_sigprocmask)
}
-PREx(sys_sigpending, NBRunInLWP)
+PRE(sys_sigpending, NBRunInLWP)
{
PRINT( "sys_sigpending ( %p )", arg1 );
@@ -6002,10 +5998,10 @@ PREx(sys_sigpending, NBRunInLWP)
}
-POSTx(sys_sigpending)
+POST(sys_sigpending)
{
POST_MEM_WRITE( arg1, sizeof(vki_old_sigset_t) ) ;
}
-PREx(sys_rt_sigpending, NBRunInLWP)
+PRE(sys_rt_sigpending, NBRunInLWP)
{
PRINT( "sys_rt_sigpending ( %p )", arg1 );
@@ -6015,5 +6011,5 @@ PREx(sys_rt_sigpending, NBRunInLWP)
}
-POSTx(sys_rt_sigpending)
+POST(sys_rt_sigpending)
{
POST_MEM_WRITE( arg1, sizeof(vki_sigset_t) ) ;
@@ -6023,5 +6019,5 @@ POSTx(sys_rt_sigpending)
// the syscall itself, and this allows us to control exactly the code that
// gets run while the padding is in place.
-PREx(sys_io_setup, Special)
+PRE(sys_io_setup, Special)
{
SizeT size;
@@ -6061,5 +6057,5 @@ PREx(sys_io_setup, Special)
// know that we must look at the aio_ring structure because Tom inspected the
// kernel and glibc sources to see what they do, yuk.)
-PREx(sys_io_destroy, Special)
+PRE(sys_io_destroy, Special)
{
Segment *s = VG_(find_segment)(arg1);
@@ -6084,5 +6080,5 @@ PREx(sys_io_destroy, Special)
}
-PREx(sys_io_getevents, MayBlock)
+PRE(sys_io_getevents, MayBlock)
{
PRINT("sys_io_getevents ( %llu, %lld, %lld, %p, %p )",
@@ -6100,5 +6096,5 @@ PREx(sys_io_getevents, MayBlock)
}
-POSTx(sys_io_getevents)
+POST(sys_io_getevents)
{
int i;
@@ -6127,5 +6123,5 @@ POSTx(sys_io_getevents)
}
-PREx(sys_io_submit, 0)
+PRE(sys_io_submit, 0)
{
int i;
@@ -6158,5 +6154,5 @@ PREx(sys_io_submit, 0)
}
-PREx(sys_io_cancel, 0)
+PRE(sys_io_cancel, 0)
{
PRINT("sys_io_cancel( %llu, %p, %p )", (ULong)arg1,arg2,arg3);
@@ -6168,10 +6164,10 @@ PREx(sys_io_cancel, 0)
}
-POSTx(sys_io_cancel)
+POST(sys_io_cancel)
{
POST_MEM_WRITE( arg3, sizeof(struct vki_io_event) );
}
-PREx(sys_mq_open, 0)
+PRE(sys_mq_open, 0)
{
PRINT("sys_mq_open( %p(%s), %d, %lld, %p )",
@@ -6190,5 +6186,5 @@ PREx(sys_mq_open, 0)
}
-POSTx(sys_mq_open)
+POST(sys_mq_open)
{
if (!fd_allowed(res, "mq_open", tid, True)) {
@@ -6201,5 +6197,5 @@ POSTx(sys_mq_open)
}
-PREx(sys_mq_unlink, 0)
+PRE(sys_mq_unlink, 0)
{
PRINT("sys_mq_unlink ( %p(%s) )", arg1,arg1);
@@ -6208,5 +6204,5 @@ PREx(sys_mq_unlink, 0)
}
-PREx(sys_mq_timedsend, MayBlock)
+PRE(sys_mq_timedsend, MayBlock)
{
PRINT("sys_mq_timedsend ( %d, %p, %llu, %d, %p )",
@@ -6225,5 +6221,5 @@ PREx(sys_mq_timedsend, MayBlock)
}
-PREx(sys_mq_timedreceive, MayBlock)
+PRE(sys_mq_timedreceive, MayBlock)
{
PRINT("sys_mq_timedreceive( %d, %p, %llu, %p, %p )",
@@ -6246,5 +6242,5 @@ PREx(sys_mq_timedreceive, MayBlock)
}
-POSTx(sys_mq_timedreceive)
+POST(sys_mq_timedreceive)
{
POST_MEM_WRITE( arg2, arg3 );
@@ -6253,5 +6249,5 @@ POSTx(sys_mq_timedreceive)
}
-PREx(sys_mq_notify, 0)
+PRE(sys_mq_notify, 0)
{
PRINT("sys_mq_notify( %d, %p )", arg1,arg2 );
@@ -6265,5 +6261,5 @@ PREx(sys_mq_notify, 0)
}
-PREx(sys_mq_getsetattr, 0)
+PRE(sys_mq_getsetattr, 0)
{
PRINT("sys_mq_getsetattr( %d, %p, %p )", arg1,arg2,arg3 );
@@ -6285,5 +6281,5 @@ PREx(sys_mq_getsetattr, 0)
}
-POSTx(sys_mq_getsetattr)
+POST(sys_mq_getsetattr)
{
if (arg3 != 0)
@@ -6291,5 +6287,5 @@ POSTx(sys_mq_getsetattr)
}
-PREx(sys_timer_create, 0)
+PRE(sys_timer_create, 0)
{
PRINT("sys_timer_create( %d, %p, %p )", arg1,arg2,arg3);
@@ -6302,10 +6298,10 @@ PREx(sys_timer_create, 0)
}
-POSTx(sys_timer_create)
+POST(sys_timer_create)
{
POST_MEM_WRITE( arg3, sizeof(vki_timer_t) );
}
-PREx(sys_timer_settime, 0)
+PRE(sys_timer_settime, 0)
{
PRINT("sys_timer_settime( %lld, %d, %p, %p )", (ULong)arg1,arg2,arg3,arg4);
@@ -6321,5 +6317,5 @@ PREx(sys_timer_settime, 0)
}
-POSTx(sys_timer_settime)
+POST(sys_timer_settime)
{
if (arg4 != 0)
@@ -6327,5 +6323,5 @@ POSTx(sys_timer_settime)
}
-PREx(sys_timer_gettime, 0)
+PRE(sys_timer_gettime, 0)
{
PRINT("sys_timer_gettime( %lld, %p )", (ULong)arg1,arg2);
@@ -6336,10 +6332,10 @@ PREx(sys_timer_gettime, 0)
}
-POSTx(sys_timer_gettime)
+POST(sys_timer_gettime)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_itimerspec) );
}
-PREx(sys_timer_getoverrun, 0)
+PRE(sys_timer_getoverrun, 0)
{
PRINT("sys_timer_getoverrun( %p )", arg1);
@@ -6347,5 +6343,5 @@ PREx(sys_timer_getoverrun, 0)
}
-PREx(sys_timer_delete, 0)
+PRE(sys_timer_delete, 0)
{
PRINT("sys_timer_delete( %p )", arg1);
@@ -6353,5 +6349,5 @@ PREx(sys_timer_delete, 0)
}
-PREx(sys_clock_settime, 0)
+PRE(sys_clock_settime, 0)
{
PRINT("sys_clock_settime( %d, %p )", arg1,arg2);
@@ -6361,5 +6357,5 @@ PREx(sys_clock_settime, 0)
}
-PREx(sys_clock_gettime, 0)
+PRE(sys_clock_gettime, 0)
{
PRINT("sys_clock_gettime( %d, %p )" , arg1,arg2);
@@ -6369,10 +6365,10 @@ PREx(sys_clock_gettime, 0)
}
-POSTx(sys_clock_gettime)
+POST(sys_clock_gettime)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_timespec) );
}
-PREx(sys_clock_getres, 0)
+PRE(sys_clock_getres, 0)
{
PRINT("sys_clock_getres( %d, %p )" , arg1,arg2);
@@ -6384,5 +6380,5 @@ PREx(sys_clock_getres, 0)
}
-POSTx(sys_clock_getres)
+POST(sys_clock_getres)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_timespec) );
@@ -6407,22 +6403,17 @@ POSTx(sys_clock_getres)
from the __NR_foo constants to the sys_foo() PRE/POST wrappers above.
- XXX: doing this in stages, so we're in transition between the old
- SYSB_/SYSBA macros to the new SYSX_/SYS_XY macros.
-
XXX: some of these are arch-specific, and should be factored out.
*/
struct sys_info {
- UInt flags; // XXX: remove this once every syscall has been converted
UInt *flags_ptr;
void (*before)(ThreadId tid, ThreadState *tst);
void (*after) (ThreadId tid, ThreadState *tst);
};
-#define SYSB_(name, n2, flags) [name] = { flags, NULL, before_##name, NULL }
-#define SYSBA(name, n2, flags) [name] = { flags, NULL, before_##name, after_##name }
-#define SYSX_(const, name) [const] = { 0, &flags_##name, before_##name, NULL }
-#define SYSXY(const, name) [const] = { 0, &flags_##name, before_##name, after_##name }
+#define SYSX_(const, name) [const] = { &flags_##name, before_##name, NULL }
+#define SYSXY(const, name) [const] = { &flags_##name, before_##name, after_##name }
+static UInt bad_flags = Special;
static void bad_before(ThreadId tid, ThreadState *tst)
{
@@ -6441,5 +6432,5 @@ static void bad_before(ThreadId tid, Thr
}
-static const struct sys_info bad_sys = { Special, NULL, bad_before, NULL };
+static const struct sys_info bad_sys = { &bad_flags, bad_before, NULL };
// XXX: temporary: I've started labelled each entry with the target of its
@@ -6728,6 +6719,4 @@ static const struct sys_info sys_info[]
SYSXY(__NR_getdents64, sys_getdents64), // 220 * (SVr4,SVID?)
- // XXX: This wrapped in a "#if BITS_PER_LONG == 32" in
- // include/linux/syscalls.h...
SYSXY(__NR_fcntl64, sys_fcntl64), // 221 * P?
// Nb: 222 is reserved for TUX (whatever that means --njn)
@@ -6810,7 +6799,4 @@ static const struct sys_info sys_info[]
#define MAX_SYS_INFO (sizeof(sys_info)/sizeof(sys_info[0]))
-#undef SYSB_
-#undef SYSBA
-
#undef SYSX_
#undef SYSXY
@@ -6872,10 +6858,5 @@ Bool VG_(pre_syscall) ( ThreadId tid )
sys = &bad_sys;
}
- // XXX: remove once all syscalls are converted
- if (sys->flags_ptr) {
flags = *(sys->flags_ptr);
- } else {
- flags = sys->flags;
- }
{
@@ -6987,10 +6968,5 @@ void VG_(post_syscall) ( ThreadId tid, B
sys = &bad_sys;
}
- // XXX: remove once all syscalls are converted
- if (sys->flags_ptr) {
flags = *(sys->flags_ptr);
- } else {
- flags = sys->flags;
- }
isSpecial = flags & Special;
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 17:13:27
|
CVS commit by nethercote:
Converted the last syscalls. Phew. Still some cleaning up to do, esp. with
socketcall() and ipc() which are done too simplistically.
Also, VG_([gs]et_thread_area)() both now return -VKI_EFAULT if they are given a
NULL pointer.
M +14 -10 coregrind/Makefile.am 1.103
M +42 -38 coregrind/vg_syscalls.c 1.217
M +12 -2 coregrind/x86-linux/ldt.c 1.5
M +25 -10 memcheck/tests/scalar.c 1.48
M +111 -0 memcheck/tests/scalar.stderr.exp 1.40
--- valgrind/coregrind/Makefile.am #1.102:1.103
@@ -77,9 +77,17 @@
vg_translate.c \
vg_transtab.c
+
+stage2_extra= \
+ demangle/libdemangle.a \
+ ${VG_ARCH}/libarch.a \
+ ${VG_PLATFORM}/libplatform.a
+
## Test repeated in both arms of the if-then-else because older versions of
## automake don't seem to like having += within an if-then-else.
if USE_PIE
stage2_CFLAGS = $(AM_CFLAGS) -fpie
-stage2_DEPENDENCIES = $(srcdir)/valgrind.vs
+stage2_DEPENDENCIES = \
+ $(srcdir)/valgrind.vs \
+ $(stage2_extra)
stage2_LDFLAGS = -Wl,--export-dynamic -g \
-Wl,-version-script $(srcdir)/valgrind.vs \
@@ -87,5 +95,7 @@
else
stage2_CFLAGS = $(AM_CFLAGS)
-stage2_DEPENDENCIES = $(srcdir)/valgrind.vs ${VG_ARCH}/stage2.lds
+stage2_DEPENDENCIES = \
+ $(srcdir)/valgrind.vs ${VG_ARCH}/stage2.lds \
+ $(stage2_extra)
stage2_LDFLAGS = -Wl,--export-dynamic -g \
-Wl,-version-script $(srcdir)/valgrind.vs \
@@ -93,12 +103,6 @@
endif
-stage2_LDADD= \
- demangle/cp-demangle.o \
- demangle/cplus-dem.o \
- demangle/dyn-string.o \
- demangle/safe-ctype.o \
- ${VG_ARCH}/libarch.a \
- ${VG_PLATFORM}/libplatform.a \
- -ldl
+stage2_LDADD= $(stage2_extra) -ldl
+
vg_intercept.c: $(srcdir)/gen_intercepts.pl $(srcdir)/vg_intercept.c.base
--- valgrind/coregrind/vg_syscalls.c #1.216:1.217
@@ -1246,10 +1246,9 @@ PREx(sys_modify_ldt, Special)
}
-PRE(set_thread_area)
+PREx(sys_set_thread_area, Special)
{
- PRINT("set_thread_area ( %p )", arg1);
-
- PRE_MEM_READ( "set_thread_area(ptr)", arg1,
- sizeof(vki_modify_ldt_t) );
+ PRINT("sys_set_thread_area ( %p )", arg1);
+ PRE_REG_READ1(int, "set_thread_area", struct user_desc *, u_info)
+ PRE_MEM_READ( "set_thread_area(u_info)", arg1, sizeof(vki_modify_ldt_t) );
/* "do" the syscall ourselves; the kernel never sees it */
@@ -1257,9 +1256,9 @@ PRE(set_thread_area)
}
-PRE(get_thread_area)
+PREx(sys_get_thread_area, Special)
{
- PRINT("get_thread_area ( %p )", arg1);
- PRE_MEM_WRITE( "get_thread_area(ptr)", arg1,
- sizeof(vki_modify_ldt_t) );
+ PRINT("sys_get_thread_area ( %p )", arg1);
+ PRE_REG_READ1(int, "get_thread_area", struct user_desc *, u_info)
+ PRE_MEM_WRITE( "get_thread_area(u_info)", arg1, sizeof(vki_modify_ldt_t) );
/* "do" the syscall ourselves; the kernel never sees it */
@@ -1503,5 +1502,5 @@ PREx(sys_msync, MayBlock)
// Therefore, we have to provide this type ourself, rather than getting it
// from the kernel sources.
-struct pmsg_strbuf {
+struct vki_pmsg_strbuf {
int maxlen; /* no. of bytes in buffer */
int len; /* no. of bytes returned */
@@ -1509,14 +1508,15 @@ struct pmsg_strbuf {
};
-PRE(getpmsg)
+PREx(sys_getpmsg, MayBlock)
{
/* LiS getpmsg from http://www.gcom.com/home/linux/lis/ */
- /* int getpmsg(int fd, struct strbuf *ctrl, struct strbuf *data,
- int *bandp, int *flagsp); */
- struct pmsg_strbuf *ctrl;
- struct pmsg_strbuf *data;
- PRINT("getpmsg ( %d, %p, %p, %p, %p )", arg1,arg2,arg3,arg4,arg5);
- ctrl = (struct pmsg_strbuf *)arg2;
- data = (struct pmsg_strbuf *)arg3;
+ struct vki_pmsg_strbuf *ctrl;
+ struct vki_pmsg_strbuf *data;
+ PRINT("sys_getpmsg ( %d, %p, %p, %p, %p )", arg1,arg2,arg3,arg4,arg5);
+ PRE_REG_READ5(int, "getpmsg",
+ int, fd, struct strbuf *, ctrl, struct strbuf *, data,
+ int *, bandp, int *, flagsp);
+ ctrl = (struct vki_pmsg_strbuf *)arg2;
+ data = (struct vki_pmsg_strbuf *)arg3;
if (ctrl && ctrl->maxlen > 0)
PRE_MEM_WRITE( "getpmsg(ctrl)", (Addr)ctrl->buf, ctrl->maxlen);
@@ -1529,11 +1529,11 @@ PRE(getpmsg)
}
-POST(getpmsg)
+POSTx(sys_getpmsg)
{
- struct pmsg_strbuf *ctrl;
- struct pmsg_strbuf *data;
+ struct vki_pmsg_strbuf *ctrl;
+ struct vki_pmsg_strbuf *data;
- ctrl = (struct pmsg_strbuf *)arg2;
- data = (struct pmsg_strbuf *)arg3;
+ ctrl = (struct vki_pmsg_strbuf *)arg2;
+ data = (struct vki_pmsg_strbuf *)arg3;
if (res == 0 && ctrl && ctrl->len > 0) {
POST_MEM_WRITE( (Addr)ctrl->buf, ctrl->len);
@@ -1544,14 +1544,15 @@ POST(getpmsg)
}
-PRE(putpmsg)
+PREx(sys_putpmsg, MayBlock)
{
/* LiS putpmsg from http://www.gcom.com/home/linux/lis/ */
- /* int putpmsg(int fd, struct strbuf *ctrl, struct strbuf *data,
- int band, int flags); */
- struct pmsg_strbuf *ctrl;
- struct pmsg_strbuf *data;
- PRINT("putpmsg ( %d, %p, %p, %d, %d )", arg1,arg2,arg3,arg4,arg5);
- ctrl = (struct pmsg_strbuf *)arg2;
- data = (struct pmsg_strbuf *)arg3;
+ struct vki_pmsg_strbuf *ctrl;
+ struct vki_pmsg_strbuf *data;
+ PRINT("sys_putpmsg ( %d, %p, %p, %d, %d )", arg1,arg2,arg3,arg4,arg5);
+ PRE_REG_READ5(int, "putpmsg",
+ int, fd, struct strbuf *, ctrl, struct strbuf *, data,
+ int, band, int, flags);
+ ctrl = (struct vki_pmsg_strbuf *)arg2;
+ data = (struct vki_pmsg_strbuf *)arg3;
if (ctrl && ctrl->len > 0)
PRE_MEM_READ( "putpmsg(ctrl)", (Addr)ctrl->buf, ctrl->len);
@@ -5859,8 +5860,11 @@ POSTx(sys_rt_sigqueueinfo)
#endif
-PRE(sigaltstack)
+// XXX: x86-specific
+PREx(sys_sigaltstack, SIG_SIM)
{
/* int sigaltstack(const stack_t *ss, stack_t *oss); */
PRINT("sigaltstack ( %p, %p )",arg1,arg2);
+ PRE_REG_READ2(int, "sigaltstack",
+ const vki_stack_t *, ss, vki_stack_t *, oss);
if (arg1 != (UWord)NULL) {
PRE_MEM_READ( "sigaltstack(ss)", arg1, sizeof(vki_stack_t) );
@@ -5874,5 +5878,5 @@ PRE(sigaltstack)
}
-POST(sigaltstack)
+POSTx(sys_sigaltstack)
{
if (res == 0 && arg2 != (UWord)NULL)
@@ -6681,8 +6685,8 @@ static const struct sys_info sys_info[]
SYSX_(__NR_capset, sys_capset), // 185 * L?
- SYSBA(__NR_sigaltstack, sys_sigaltstack, SIG_SIM), // 186
+ SYSXY(__NR_sigaltstack, sys_sigaltstack), // 186 (x86) (XPG4-UNIX)
SYSXY(__NR_sendfile, sys_sendfile), // 187 * L
- SYSBA(__NR_getpmsg, sys_ni_syscall, MayBlock), // 188 ...
- SYSB_(__NR_putpmsg, sys_ni_syscall, MayBlock), // 189 ...
+ SYSXY(__NR_getpmsg, sys_getpmsg), // 188 (?) (?)
+ SYSX_(__NR_putpmsg, sys_putpmsg), // 189 (?) (?)
// Nb: we convert vfork() to fork() in VG_(pre_syscall)().
@@ -6753,6 +6757,6 @@ static const struct sys_info sys_info[]
SYSX_(__NR_sched_setaffinity,sys_sched_setaffinity), // 241 * L?
SYSXY(__NR_sched_getaffinity,sys_sched_getaffinity), // 242 * L?
- SYSB_(__NR_set_thread_area, sys_set_thread_area, Special), // 243
- SYSB_(__NR_get_thread_area, sys_get_thread_area, Special), // 244
+ SYSX_(__NR_set_thread_area, sys_set_thread_area), // 243 (x86-only) L
+ SYSX_(__NR_get_thread_area, sys_get_thread_area), // 244 (x86-only) L
SYSX_(__NR_io_setup, sys_io_setup), // 245 * L
--- valgrind/coregrind/x86-linux/ldt.c #1.4:1.5
@@ -421,5 +421,10 @@ Int VG_(sys_set_thread_area) ( ThreadId
vki_modify_ldt_t* info )
{
- Int idx = info->entry_number;
+ Int idx;
+
+ if (info == NULL)
+ return -VKI_EFAULT;
+
+ idx = info->entry_number;
if (idx == -1) {
@@ -455,7 +460,12 @@ Int VG_(sys_get_thread_area) ( ThreadId
vki_modify_ldt_t* info )
{
- Int idx = info->entry_number;
+ Int idx;
VgLdtEntry* tls;
+ if (info == NULL)
+ return -VKI_EFAULT;
+
+ idx = info->entry_number;
+
if (idx < VKI_GDT_ENTRY_TLS_MIN || idx > VKI_GDT_ENTRY_TLS_MAX)
return -VKI_EINVAL;
--- valgrind/memcheck/tests/scalar.c #1.47:1.48
@@ -799,6 +799,17 @@ int main(void)
// __NR_sigaltstack 186
- //GO(__NR_sigaltstack, ".s .m");
- //SY(__NR_sigaltstack); FAIL;
+ {
+ struct our_sigaltstack {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+ } ss;
+ ss.ss_sp = NULL;
+ ss.ss_flags = 0;
+ ss.ss_size = 0;
+ VALGRIND_MAKE_NOACCESS(& ss, sizeof(struct our_sigaltstack));
+ GO(__NR_sigaltstack, "2s 2m");
+ SY(__NR_sigaltstack, x0+&ss, x0+&ss); SUCC;
+ }
// __NR_sendfile 187
@@ -807,10 +818,14 @@ int main(void)
// __NR_getpmsg 188
- //GO(__NR_getpmsg, ".s .m");
- //SY(__NR_getpmsg); FAIL;
+ // Could do 5s 4m with more effort, but I can't be bothered for this
+ // crappy non-standard syscall.
+ GO(__NR_getpmsg, "5s 0m");
+ SY(__NR_getpmsg, x0, x0, x0, x0); FAIL;
// __NR_putpmsg 189
- //GO(__NR_putpmsg, ".s .m");
- //SY(__NR_putpmsg); FAIL;
+ // Could do 5s 2m with more effort, but I can't be bothered for this
+ // crappy non-standard syscall.
+ GO(__NR_putpmsg, "5s 0m");
+ SY(__NR_putpmsg, x0, x0, x0, x0, x0); FAIL;
// __NR_vfork 190
@@ -1031,10 +1046,10 @@ int main(void)
// __NR_set_thread_area 243
- //GO(__NR_set_thread_area, ".s .m");
- //SY(__NR_set_thread_area); FAIL;
+ GO(__NR_set_thread_area, "1s 1m");
+ SY(__NR_set_thread_area, x0); FAILx(EFAULT);
// __NR_get_thread_area 244
- //GO(__NR_get_thread_area, ".s .m");
- //SY(__NR_get_thread_area); FAIL;
+ GO(__NR_get_thread_area, "1s 1m");
+ SY(__NR_get_thread_area, x0); FAILx(EFAULT);
// __NR_io_setup 245
--- valgrind/memcheck/tests/scalar.stderr.exp #1.39:1.40
@@ -2616,4 +2616,31 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+186: __NR_sigaltstack 2s 2m
+-----------------------------------------------------
+
+Syscall param sigaltstack(ss) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param sigaltstack(oss) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param sigaltstack(ss) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is 0 bytes inside a block of size 12 client-defined
+ at 0x........: main (scalar.c:810)
+
+Syscall param sigaltstack(oss) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is 0 bytes inside a block of size 12 client-defined
+ at 0x........: main (scalar.c:810)
+-----------------------------------------------------
187: __NR_sendfile 4s 1m
-----------------------------------------------------
@@ -2645,4 +2672,60 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+188: __NR_getpmsg 5s 0m
+-----------------------------------------------------
+
+Syscall param getpmsg(fd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param getpmsg(ctrl) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param getpmsg(data) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param getpmsg(bandp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param getpmsg(flagsp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+189: __NR_putpmsg 5s 0m
+-----------------------------------------------------
+
+Syscall param putpmsg(fd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param putpmsg(ctrl) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param putpmsg(data) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param putpmsg(band) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param putpmsg(flags) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
190: __NR_vfork other
-----------------------------------------------------
@@ -3709,4 +3792,32 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+243:__NR_set_thread_area 1s 1m
+-----------------------------------------------------
+
+Syscall param set_thread_area(u_info) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param set_thread_area(u_info) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+244:__NR_get_thread_area 1s 1m
+-----------------------------------------------------
+
+Syscall param get_thread_area(u_info) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param get_thread_area(u_info) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
245: __NR_io_setup 2s 1m
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 16:15:50
|
CVS commit by nethercote:
Converted the timer_* and clock_* syscalls.
Also now checking the return value of every syscall in scalar, to make sure
that they (mostly) fail as expected. Because occasionally one would succeed
unexpectedly and unaddressable memory would be marked as addressable, and
things would go haywire. (The fact that the wrapper sets the memory as
addressable in these cases is a bug with the relevant wrappers; I'll fix them
later.)
M +81 -65 coregrind/vg_syscalls.c 1.216
M +1 -0 include/linux/vki.h 1.10
M +1 -0 include/x86-linux/vki_arch_posixtypes.h 1.3
M +292 -291 memcheck/tests/scalar.c 1.47
M +21 -1 memcheck/tests/scalar.h 1.4 [POSSIBLY UNSAFE: printf]
M +193 -3 memcheck/tests/scalar.stderr.exp 1.39
M +1 -0 memcheck/tests/scalar_exit_group.c 1.3
M +2 -0 memcheck/tests/scalar_fork.c 1.2
M +2 -0 memcheck/tests/scalar_vfork.c 1.2
--- valgrind/coregrind/vg_syscalls.c #1.215:1.216
@@ -1056,13 +1056,20 @@ static Bool fd_allowed(Int fd, const Cha
__NR_foo constants and their relationship to the sys_foo() functions.
- Note that for the PRE_REG_READ tests, we pass a somewhat generic name
- for the syscall (eg. "write")... this should be good enough for the
- average user to understand what is happening, without confusing them
- with names like "sys_write". Also, the arg names sometimes are taken
- from the man pages for the glibc equivalent functions, rather than those
- used in the Linux source code, for the same reason. However, for the
- --trace-syscalls=yes output, we use the sys_foo() name to avoid
+ Some notes about names used for syscalls and args:
+ - For the --trace-syscalls=yes output, we use the sys_foo() name to avoid
ambiguity.
+ - For error messages, we generally use a somewhat generic name
+ for the syscall (eg. "write" rather than "sys_write"). This should be
+ good enough for the average user to understand what is happening,
+ without confusing them with names like "sys_write".
+
+ - Also, for error messages the arg names are mostly taken from the man
+ pages (even though many of those man pages are really for glibc
+ functions of the same name), rather than from the Linux kernel source,
+ for the same reason -- a user presented with a "bogus foo(bar)" arg
+ will most likely look at the "foo" man page to see which is the "bar"
+ arg.
+
Note that we use our own vki_* types. The one exception is in
PRE_REG_READn calls, where pointer types haven't been changed, because
@@ -5824,13 +5831,14 @@ POSTx(sys_rt_sigtimedwait)
}
-PRE(rt_sigqueueinfo)
+PREx(sys_rt_sigqueueinfo, 0)
{
- /* long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t *uinfo) */
- PRINT("rt_sigqueueinfo(%d, %d, %p)", arg1, arg2, arg3);
+ PRINT("sys_rt_sigqueueinfo(%d, %d, %p)", arg1, arg2, arg3);
+ PRE_REG_READ3(long, "rt_sigqueueinfo",
+ int, pid, int, sig, vki_siginfo_t *, uinfo);
if (arg2 != (UWord)NULL)
- PRE_MEM_READ( "sigqueueinfo(uinfo)", arg3, sizeof(vki_siginfo_t) );
+ PRE_MEM_READ( "rt_sigqueueinfo(uinfo)", arg3, sizeof(vki_siginfo_t) );
}
-POST(rt_sigqueueinfo)
+POSTx(sys_rt_sigqueueinfo)
{
if (res >= 0 &&
@@ -6279,9 +6287,10 @@ POSTx(sys_mq_getsetattr)
}
-PRE(timer_create)
+PREx(sys_timer_create, 0)
{
- /* int timer_create(clockid_t clock_id, struct sigevent *restrict evp,
- timer_t *restrict timerid); */
- PRINT("timer_create( %d, %p, %p )", arg1,arg2,arg3);
+ PRINT("sys_timer_create( %d, %p, %p )", arg1,arg2,arg3);
+ PRE_REG_READ3(long, "timer_create",
+ vki_clockid_t, clockid, struct sigevent *, evp,
+ vki_timer_t *, timerid);
if (arg2 != 0)
PRE_MEM_READ( "timer_create(evp)", arg2, sizeof(struct vki_sigevent) );
@@ -6289,15 +6298,16 @@ PRE(timer_create)
}
-POST(timer_create)
+POSTx(sys_timer_create)
{
POST_MEM_WRITE( arg3, sizeof(vki_timer_t) );
}
-PRE(timer_settime)
+PREx(sys_timer_settime, 0)
{
- /* int timer_settime(timer_t timerid, int flags,
- const struct itimerspec *restrict value,
- struct itimerspec *restrict ovalue); */
- PRINT("timer_settime( %p, %d, %p, %p )", arg1,arg2,arg3,arg4);
+ PRINT("sys_timer_settime( %lld, %d, %p, %p )", (ULong)arg1,arg2,arg3,arg4);
+ PRE_REG_READ4(long, "timer_settime",
+ vki_timer_t, timerid, int, flags,
+ const struct itimerspec *, value,
+ struct itimerspec *, ovalue);
PRE_MEM_READ( "timer_settime(value)", arg3,
sizeof(struct vki_itimerspec) );
@@ -6307,5 +6317,5 @@ PRE(timer_settime)
}
-POST(timer_settime)
+POSTx(sys_timer_settime)
{
if (arg4 != 0)
@@ -6313,56 +6323,62 @@ POST(timer_settime)
}
-PRE(timer_gettime)
+PREx(sys_timer_gettime, 0)
{
- /* int timer_gettime(timer_t timerid, struct itimerspec *value); */
- PRINT("timer_gettime( %p, %p )", arg1,arg2);
+ PRINT("sys_timer_gettime( %lld, %p )", (ULong)arg1,arg2);
+ PRE_REG_READ2(long, "timer_gettime",
+ vki_timer_t, timerid, struct itimerspec *, value);
PRE_MEM_WRITE( "timer_gettime(value)", arg2,
sizeof(struct vki_itimerspec));
}
-POST(timer_gettime)
+POSTx(sys_timer_gettime)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_itimerspec) );
}
-PRE(timer_getoverrun)
+PREx(sys_timer_getoverrun, 0)
{
- /* int timer_getoverrun(timer_t timerid); */
- PRINT("timer_getoverrun( %p )", arg1);
+ PRINT("sys_timer_getoverrun( %p )", arg1);
+ PRE_REG_READ1(long, "timer_getoverrun", vki_timer_t, timerid);
}
-PRE(timer_delete)
+PREx(sys_timer_delete, 0)
{
- /* int timer_delete(timer_t timerid); */
- PRINT("timer_delete( %p )", arg1);
+ PRINT("sys_timer_delete( %p )", arg1);
+ PRE_REG_READ1(long, "timer_delete", vki_timer_t, timerid);
}
-PRE(clock_settime)
+PREx(sys_clock_settime, 0)
{
- /* int clock_settime(clockid_t clk_id, const struct timespec *tp); */
- PRINT("clock_settime( %d, %p )", arg1,arg2);
- PRE_MEM_READ( "clock_gettime(tp)", arg2, sizeof(struct vki_timespec) );
+ PRINT("sys_clock_settime( %d, %p )", arg1,arg2);
+ PRE_REG_READ2(long, "clock_settime",
+ vki_clockid_t, clk_id, const struct timespec *, tp);
+ PRE_MEM_READ( "clock_settime(tp)", arg2, sizeof(struct vki_timespec) );
}
-PRE(clock_gettime)
+PREx(sys_clock_gettime, 0)
{
- /* int clock_gettime(clockid_t clk_id, struct timespec *tp); */
- PRINT("clock_gettime( %d, %p )" , arg1,arg2);
+ PRINT("sys_clock_gettime( %d, %p )" , arg1,arg2);
+ PRE_REG_READ2(long, "clock_gettime",
+ vki_clockid_t, clk_id, struct timespec *, tp);
PRE_MEM_WRITE( "clock_gettime(tp)", arg2, sizeof(struct vki_timespec) );
}
-POST(clock_gettime)
+POSTx(sys_clock_gettime)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_timespec) );
}
-PRE(clock_getres)
+PREx(sys_clock_getres, 0)
{
- /* int clock_getres(clockid_t clk_id, struct timespec *res); */
- PRINT("clock_getres( %d, %p )" , arg1,arg2);
- PRE_MEM_WRITE( "clock_getres(res)", arg2, sizeof(struct vki_timespec) );
+ PRINT("sys_clock_getres( %d, %p )" , arg1,arg2);
+ // Nb: we can't use "res" as the param name because that's a macro
+ // defined above!
+ PRE_REG_READ2(long, "clock_getres",
+ vki_clockid_t, clk_id, struct timespec *, cres);
+ PRE_MEM_WRITE( "clock_getres(cres)", arg2, sizeof(struct vki_timespec) );
}
-POST(clock_getres)
+POSTx(sys_clock_getres)
{
POST_MEM_WRITE( arg2, sizeof(struct vki_timespec) );
@@ -6655,5 +6671,5 @@ static const struct sys_info sys_info[]
SYSXY(__NR_rt_sigpending, sys_rt_sigpending), // 176 * ?
SYSXY(__NR_rt_sigtimedwait, sys_rt_sigtimedwait), // 177 * ?
- SYSBA(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, 0), // 178 *
+ SYSXY(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo), // 178 * ?
SYSX_(__NR_rt_sigsuspend, sys_rt_sigsuspend), // 179 () ()
SYSXY(__NR_pread64, sys_pread64), // 180 * (Unix98?)
@@ -6754,17 +6770,17 @@ static const struct sys_info sys_info[]
SYSX_(__NR_epoll_ctl, sys_epoll_ctl), // 255 * L
SYSXY(__NR_epoll_wait, sys_epoll_wait), // 256 * L
- // (__NR_remap_file_pages, sys_remap_file_pages), // 257 * L
+ // (__NR_remap_file_pages, sys_remap_file_pages),// 257 * L
SYSX_(__NR_set_tid_address, sys_set_tid_address), // 258 * ?
- SYSBA(__NR_timer_create, sys_timer_create, 0), // 259
+ SYSXY(__NR_timer_create, sys_timer_create), // 259 (?) P
- SYSBA(__NR_timer_settime, sys_timer_settime, 0), // (timer_create+1) *
- SYSBA(__NR_timer_gettime, sys_timer_gettime, 0), // (timer_create+2) *
- SYSB_(__NR_timer_getoverrun, sys_timer_getoverrun, 0), // (timer_create+3) *
- SYSB_(__NR_timer_delete, sys_timer_delete, 0), // (timer_create+4) *
- SYSB_(__NR_clock_settime, sys_clock_settime, 0), // (timer_create+5) *
+ SYSXY(__NR_timer_settime, sys_timer_settime), // (timer_create+1) * P
+ SYSXY(__NR_timer_gettime, sys_timer_gettime), // (timer_create+2) * P
+ SYSX_(__NR_timer_getoverrun, sys_timer_getoverrun),// (timer_create+3) * P
+ SYSX_(__NR_timer_delete, sys_timer_delete), // (timer_create+4) * P
+ SYSX_(__NR_clock_settime, sys_clock_settime), // (timer_create+5) * P
- SYSBA(__NR_clock_gettime, sys_clock_gettime, 0), // (timer_create+6) *
- SYSBA(__NR_clock_getres, sys_clock_getres, 0), // (timer_create+7) *
- // (__NR_clock_nanosleep, sys_clock_nanosleep), // (timer_create+8) * P?
+ SYSXY(__NR_clock_gettime, sys_clock_gettime), // (timer_create+6) * P
+ SYSXY(__NR_clock_getres, sys_clock_getres), // (timer_create+7) * P
+ // (__NR_clock_nanosleep, sys_clock_nanosleep), // (timer_create+8) * P
SYSXY(__NR_statfs64, sys_statfs64), // 268 * (?)
--- valgrind/include/linux/vki.h #1.9:1.10
@@ -114,4 +114,5 @@ typedef __vki_kernel_key_t vki_key_t;
typedef __vki_kernel_suseconds_t vki_suseconds_t;
typedef __vki_kernel_timer_t vki_timer_t;
+typedef __vki_kernel_clockid_t vki_clockid_t;
typedef __vki_kernel_mqd_t vki_mqd_t;
--- valgrind/include/x86-linux/vki_arch_posixtypes.h #1.2:1.3
@@ -48,4 +48,5 @@ typedef long __vki_kernel_suseconds_t;
typedef long __vki_kernel_clock_t;
typedef int __vki_kernel_timer_t;
+typedef int __vki_kernel_clockid_t;
typedef char * __vki_kernel_caddr_t;
typedef unsigned int __vki_kernel_uid32_t;
--- valgrind/memcheck/tests/scalar.c #1.46:1.47
@@ -20,4 +20,5 @@ int main(void)
long* px = malloc(sizeof(long));
long x0 = px[0];
+ long res;
// All __NR_xxx numbers are taken from x86
@@ -37,36 +38,38 @@ int main(void)
// Nb: here we are also getting an error from the syscall arg itself.
GO(__NR_read, "1+3s 1m");
- SY(__NR_read+x0, x0, x0, x0+1);
+ SY(__NR_read+x0, x0, x0, x0+1); FAILx(EFAULT);
// __NR_write 4
GO(__NR_write, "3s 1m");
- SY(__NR_write, x0, x0, x0+1);
+ SY(__NR_write, x0, x0, x0+1); FAIL;
// __NR_open 5
GO(__NR_open, "(2-args) 2s 1m");
- SY(__NR_open, x0, x0, x0+1);
+ SY(__NR_open, x0, x0); FAIL;
+ // Only 1s 0m errors, because 2s 1m are ignored, being dups of the
+ // earlier 2-arg open call.
GO(__NR_open, "(3-args) 1s 0m");
- SY(__NR_open, "tmp_write_file_foo", O_CREAT, x0);
+ SY(__NR_open, x0, x0+O_CREAT, x0); FAIL;
// __NR_close 6
GO(__NR_close, "1s 0m");
- SY(__NR_close, x0-1);
+ SY(__NR_close, x0-1); FAIL;
// __NR_waitpid 7
GO(__NR_waitpid, "3s 1m");
- SY(__NR_waitpid, x0, x0+1, x0);
+ SY(__NR_waitpid, x0, x0+1, x0); FAIL;
// __NR_creat 8
GO(__NR_creat, "2s 1m");
- SY(__NR_creat, x0, x0);
+ SY(__NR_creat, x0, x0); FAIL;
// __NR_link 9
GO(__NR_link, "2s 2m");
- SY(__NR_link, x0, x0);
+ SY(__NR_link, x0, x0); FAIL;
// __NR_unlink 10
GO(__NR_unlink, "1s 1m");
- SY(__NR_unlink, x0);
+ SY(__NR_unlink, x0); FAIL;
// __NR_execve 11
@@ -74,29 +77,29 @@ int main(void)
// args, except for bug #93174.
GO(__NR_execve, "3s 1m");
- SY(__NR_execve, x0, x0, x0);
+ SY(__NR_execve, x0, x0, x0); FAIL;
// __NR_chdir 12
GO(__NR_chdir, "1s 1m");
- SY(__NR_chdir, x0);
+ SY(__NR_chdir, x0); FAIL;
// __NR_time 13
GO(__NR_time, "1s 1m");
- SY(__NR_time, x0+1);
+ SY(__NR_time, x0+1); FAIL;
// __NR_mknod 14
GO(__NR_mknod, "3s 1m");
- SY(__NR_mknod, x0, x0, x0);
+ SY(__NR_mknod, x0, x0, x0); FAIL;
// __NR_chmod 15
GO(__NR_chmod, "2s 1m");
- SY(__NR_chmod, x0, x0);
+ SY(__NR_chmod, x0, x0); FAIL;
// __NR_lchown 16
GO(__NR_lchown, "n/a");
- //SY(__NR_lchown); // (Not yet handled by Valgrind)
+ //SY(__NR_lchown); // (Not yet handled by Valgrind) FAIL;
// __NR_break 17
GO(__NR_break, "ni");
- SY(__NR_break);
+ SY(__NR_break); FAIL;
// __NR_oldstat 18
@@ -106,38 +109,38 @@ int main(void)
// __NR_lseek 19
GO(__NR_lseek, "3s 0m");
- SY(__NR_lseek, x0, x0, x0);
+ SY(__NR_lseek, x0-1, x0, x0); FAILx(EBADF);
// __NR_getpid 20
GO(__NR_getpid, "0s 0m");
- SY(__NR_getpid);
+ SY(__NR_getpid); SUCC;
// __NR_mount 21
GO(__NR_mount, "5s 3m");
- SY(__NR_mount, x0, x0, x0, x0, x0);
+ SY(__NR_mount, x0, x0, x0, x0, x0); FAIL;
// __NR_umount 22
GO(__NR_umount, "1s 1m");
- SY(__NR_umount, x0);
+ SY(__NR_umount, x0); FAIL;
// __NR_setuid 23
GO(__NR_setuid, "1s 0m");
- SY(__NR_setuid, x0);
+ SY(__NR_setuid, x0); FAIL;
// __NR_getuid 24
GO(__NR_getuid, "0s 0m");
- SY(__NR_getuid);
+ SY(__NR_getuid); SUCC;
// __NR_stime 25
GO(__NR_stime, "n/a");
- //SY(__NR_stime); // (Not yet handled by Valgrind)
+ //SY(__NR_stime); // (Not yet handled by Valgrind) FAIL;
// __NR_ptrace 26
// XXX: memory pointed to be arg3 is never checked...
GO(__NR_ptrace, "4s 2m");
- SY(__NR_ptrace, x0+PTRACE_GETREGS, x0, x0, x0);
+ SY(__NR_ptrace, x0+PTRACE_GETREGS, x0, x0, x0); FAIL;
// __NR_alarm 27
GO(__NR_alarm, "1s 0m");
- SY(__NR_alarm, x0);
+ SY(__NR_alarm, x0); SUCC;
// __NR_oldfstat 28
@@ -150,118 +153,118 @@ int main(void)
// __NR_utime 30
GO(__NR_utime, "2s 2m");
- SY(__NR_utime, x0, x0+1);
+ SY(__NR_utime, x0, x0+1); FAIL;
// __NR_stty 31
GO(__NR_stty, "ni");
- SY(__NR_stty);
+ SY(__NR_stty); FAIL;
// __NR_gtty 32
GO(__NR_gtty, "ni");
- SY(__NR_gtty);
+ SY(__NR_gtty); FAIL;
// __NR_access 33
GO(__NR_access, "2s 1m");
- SY(__NR_access, x0, x0);
+ SY(__NR_access, x0, x0); FAIL;
// __NR_nice 34
GO(__NR_nice, "1s 0m");
- SY(__NR_nice, x0);
+ SY(__NR_nice, x0); SUCC;
// __NR_ftime 35
GO(__NR_ftime, "ni");
- SY(__NR_ftime);
+ SY(__NR_ftime); FAIL;
// __NR_sync 36
GO(__NR_sync, "0s 0m");
- SY(__NR_sync);
+ SY(__NR_sync); SUCC;
// __NR_kill 37
GO(__NR_kill, "2s 0m");
- SY(__NR_kill, x0, x0);
+ SY(__NR_kill, x0, x0); SUCC;
// __NR_rename 38
GO(__NR_rename, "2s 2m");
- SY(__NR_rename, x0, x0);
+ SY(__NR_rename, x0, x0); FAIL;
// __NR_mkdir 39
GO(__NR_mkdir, "2s 1m");
- SY(__NR_mkdir, x0, x0);
+ SY(__NR_mkdir, x0, x0); FAIL;
// __NR_rmdir 40
GO(__NR_rmdir, "1s 1m");
- SY(__NR_rmdir, x0);
+ SY(__NR_rmdir, x0); FAIL;
// __NR_dup 41
GO(__NR_dup, "1s 0m");
- SY(__NR_dup, x0);
+ SY(__NR_dup, x0-1); FAIL;
// __NR_pipe 42
GO(__NR_pipe, "1s 1m");
- SY(__NR_pipe, x0);
+ SY(__NR_pipe, x0); FAIL;
// __NR_times 43
GO(__NR_times, "1s 1m");
- SY(__NR_times, x0);
+ SY(__NR_times, x0+1); FAIL;
// __NR_prof 44
GO(__NR_prof, "ni");
- SY(__NR_prof);
+ SY(__NR_prof); FAIL;
// __NR_brk 45
GO(__NR_brk, "1s 0m");
- SY(__NR_brk, x0);
+ SY(__NR_brk, x0); SUCC;
// __NR_setgid 46
GO(__NR_setgid, "1s 0m");
- SY(__NR_setgid, x0);
+ SY(__NR_setgid, x0); FAIL;
// __NR_getgid 47
GO(__NR_getgid, "0s 0m");
- SY(__NR_getgid);
+ SY(__NR_getgid); SUCC;
// __NR_signal 48
GO(__NR_signal, "n/a");
- //SY(__NR_signal); // (Not yet handled by Valgrind)
+ //SY(__NR_signal); // (Not yet handled by Valgrind) FAIL;
// __NR_geteuid 49
GO(__NR_geteuid, "0s 0m");
- SY(__NR_geteuid);
+ SY(__NR_geteuid); SUCC;
// __NR_getegid 50
GO(__NR_getegid, "0s 0m");
- SY(__NR_getegid);
+ SY(__NR_getegid); SUCC;
// __NR_acct 51
GO(__NR_acct, "1s 1m");
- SY(__NR_acct, x0);
+ SY(__NR_acct, x0); FAIL;
// __NR_umount2 52
GO(__NR_umount2, "2s 1m");
- SY(__NR_umount2, x0, x0);
+ SY(__NR_umount2, x0, x0); FAIL;
// __NR_lock 53
GO(__NR_lock, "ni");
- SY(__NR_lock);
+ SY(__NR_lock); FAIL;
// __NR_ioctl 54
#include <asm/ioctls.h>
GO(__NR_ioctl, "3s 1m");
- SY(__NR_ioctl, x0, x0+TCSETS, x0);
+ SY(__NR_ioctl, x0, x0+TCSETS, x0); FAIL;
// __NR_fcntl 55
GO(__NR_fcntl, "3s 0m");
- SY(__NR_fcntl, x0, x0, x0);
+ SY(__NR_fcntl, x0-1, x0, x0); FAIL;
// __NR_mpx 56
GO(__NR_mpx, "ni");
- SY(__NR_mpx);
+ SY(__NR_mpx); FAIL;
// __NR_setpgid 57
GO(__NR_setpgid, "2s 0m");
- SY(__NR_setpgid, x0, x0);
+ SY(__NR_setpgid, x0, x0-1); FAIL;
// __NR_ulimit 58
GO(__NR_ulimit, "ni");
- SY(__NR_ulimit);
+ SY(__NR_ulimit); FAIL;
// __NR_oldolduname 59
@@ -271,9 +274,9 @@ int main(void)
// __NR_umask 60
GO(__NR_umask, "1s 0m");
- SY(__NR_umask, x0);
+ SY(__NR_umask, x0+022); SUCC;
// __NR_chroot 61
GO(__NR_chroot, "1s 1m");
- SY(__NR_chroot, x0);
+ SY(__NR_chroot, x0); FAIL;
// __NR_ustat 62
@@ -283,78 +286,78 @@ int main(void)
// __NR_dup2 63
GO(__NR_dup2, "2s 0m");
- SY(__NR_dup2, x0, x0);
+ SY(__NR_dup2, x0-1, x0); FAIL;
// __NR_getppid 64
GO(__NR_getppid, "0s 0m");
- SY(__NR_getppid);
+ SY(__NR_getppid); SUCC;
// __NR_getpgrp 65
GO(__NR_getpgrp, "0s 0m");
- SY(__NR_getpgrp);
+ SY(__NR_getpgrp); SUCC;
// __NR_setsid 66
GO(__NR_setsid, "0s 0m");
- SY(__NR_setsid);
+ SY(__NR_setsid); SUCC_OR_FAIL;
// __NR_sigaction 67
GO(__NR_sigaction, "3s 2m");
- SY(__NR_sigaction, x0, x0+1, x0+1);
+ SY(__NR_sigaction, x0, x0+1, x0+1); FAIL;
// __NR_sgetmask 68 sys_sgetmask()
GO(__NR_sgetmask, "n/a");
- //SY(__NR_sgetmask); // (Not yet handled by Valgrind)
+ //SY(__NR_sgetmask); // (Not yet handled by Valgrind) FAIL;
// __NR_ssetmask 69
GO(__NR_ssetmask, "n/a");
- //SY(__NR_ssetmask); // (Not yet handled by Valgrind)
+ //SY(__NR_ssetmask); // (Not yet handled by Valgrind) FAIL;
// __NR_setreuid 70
GO(__NR_setreuid, "2s 0m");
- SY(__NR_setreuid, x0, x0);
+ SY(__NR_setreuid, x0, x0); FAIL;
// __NR_setregid 71
GO(__NR_setregid, "2s 0m");
- SY(__NR_setregid, x0, x0);
+ SY(__NR_setregid, x0, x0); FAIL;
// __NR_sigsuspend 72
// XXX: how do you use this function?
// GO(__NR_sigsuspend, ".s .m");
-// SY(__NR_sigsuspend);
+// SY(__NR_sigsuspend); FAIL;
// __NR_sigpending 73
GO(__NR_sigpending, "1s 1m");
- SY(__NR_sigpending, x0);
+ SY(__NR_sigpending, x0); FAIL;
// __NR_sethostname 74
GO(__NR_sethostname, "n/a");
- //SY(__NR_sethostname); // (Not yet handled by Valgrind)
+ //SY(__NR_sethostname); // (Not yet handled by Valgrind) FAIL;
// __NR_setrlimit 75
GO(__NR_setrlimit, "2s 1m");
- SY(__NR_setrlimit, x0, x0);
+ SY(__NR_setrlimit, x0, x0); FAIL;
// __NR_getrlimit 76
GO(__NR_getrlimit, "2s 1m");
- SY(__NR_getrlimit, x0, x0);
+ SY(__NR_getrlimit, x0, x0); FAIL;
// __NR_getrusage 77
GO(__NR_getrusage, "2s 1m");
- SY(__NR_getrusage, x0, x0);
+ SY(__NR_getrusage, x0, x0); FAIL;
// __NR_gettimeofday 78
GO(__NR_gettimeofday, "2s 2m");
- SY(__NR_gettimeofday, x0, x0+1);
+ SY(__NR_gettimeofday, x0, x0+1); FAIL;
// __NR_settimeofday 79
GO(__NR_settimeofday, "2s 2m");
- SY(__NR_settimeofday, x0, x0+1);
+ SY(__NR_settimeofday, x0, x0+1); FAIL;
// __NR_getgroups 80
GO(__NR_getgroups, "2s 1m");
- SY(__NR_getgroups, x0+1, x0+1);
+ SY(__NR_getgroups, x0+1, x0+1); FAIL;
// __NR_setgroups 81
GO(__NR_setgroups, "2s 1m");
- SY(__NR_setgroups, x0+1, x0+1);
+ SY(__NR_setgroups, x0+1, x0+1); FAIL;
// __NR_select 82
@@ -362,10 +365,10 @@ int main(void)
long args[5] = { x0+8, x0+0xffffffee, x0+1, x0+1, x0+1 };
GO(__NR_select, "1s 4m");
- SY(__NR_select, args+x0);
+ SY(__NR_select, args+x0); FAIL;
}
// __NR_symlink 83
GO(__NR_symlink, "2s 2m");
- SY(__NR_symlink, x0, x0);
+ SY(__NR_symlink, x0, x0); FAIL;
// __NR_oldlstat 84
@@ -375,17 +378,17 @@ int main(void)
// __NR_readlink 85
GO(__NR_readlink, "3s 2m");
- SY(__NR_readlink, x0+1, x0+1, x0+1);
+ SY(__NR_readlink, x0+1, x0+1, x0+1); FAIL;
// __NR_uselib 86
GO(__NR_uselib, "n/a");
- //SY(__NR_uselib); // (Not yet handled by Valgrind)
+ //SY(__NR_uselib); // (Not yet handled by Valgrind) FAIL;
// __NR_swapon 87
GO(__NR_swapon, "n/a");
- //SY(__NR_swapon); // (Not yet handled by Valgrind)
+ //SY(__NR_swapon); // (Not yet handled by Valgrind) FAIL;
// __NR_reboot 88
GO(__NR_reboot, "n/a");
- //SY(__NR_reboot); // (Not yet handled by Valgrind)
+ //SY(__NR_reboot); // (Not yet handled by Valgrind) FAIL;
// __NR_readdir 89
@@ -397,79 +400,79 @@ int main(void)
long args[6] = { x0, x0, x0, x0, x0-1, x0 };
GO(__NR_mmap, "1s 0m");
- SY(__NR_mmap, args+x0);
+ SY(__NR_mmap, args+x0); FAIL;
}
// __NR_munmap 91
GO(__NR_munmap, "2s 0m");
- SY(__NR_munmap, x0, x0);
+ SY(__NR_munmap, x0, x0); FAIL;
// __NR_truncate 92
GO(__NR_truncate, "2s 1m");
- SY(__NR_truncate, x0, x0);
+ SY(__NR_truncate, x0, x0); FAIL;
// __NR_ftruncate 93
GO(__NR_ftruncate, "2s 0m");
- SY(__NR_ftruncate, x0, x0);
+ SY(__NR_ftruncate, x0, x0); FAIL;
// __NR_fchmod 94
GO(__NR_fchmod, "2s 0m");
- SY(__NR_fchmod, x0-1, x0);
+ SY(__NR_fchmod, x0-1, x0); FAIL;
// __NR_fchown 95
GO(__NR_fchown, "3s 0m");
- SY(__NR_fchown, x0, x0, x0);
+ SY(__NR_fchown, x0, x0, x0); FAIL;
// __NR_getpriority 96
GO(__NR_getpriority, "2s 0m");
- SY(__NR_getpriority, x0, x0);
+ SY(__NR_getpriority, x0-1, x0); FAIL;
// __NR_setpriority 97
GO(__NR_setpriority, "3s 0m");
- SY(__NR_setpriority, x0, x0, x0);
+ SY(__NR_setpriority, x0-1, x0, x0); FAIL;
// __NR_profil 98
GO(__NR_profil, "ni");
- SY(__NR_profil);
+ SY(__NR_profil); FAIL;
// __NR_statfs 99
GO(__NR_statfs, "2s 2m");
- SY(__NR_statfs, x0, x0);
+ SY(__NR_statfs, x0, x0); FAIL;
// __NR_fstatfs 100
GO(__NR_fstatfs, "2s 1m");
- SY(__NR_fstatfs, x0, x0);
+ SY(__NR_fstatfs, x0, x0); FAIL;
// __NR_ioperm 101
GO(__NR_ioperm, "3s 0m");
- SY(__NR_ioperm, x0, x0, x0);
+ SY(__NR_ioperm, x0, x0, x0); FAIL;
// __NR_socketcall 102
// XXX: need to do properly
// GO(__NR_socketcall, "2s 1m");
-// SY(__NR_socketcall, x0+SYS_SOCKETPAIR, x0);
+// SY(__NR_socketcall, x0+SYS_SOCKETPAIR, x0); FAIL;
// __NR_syslog 103
GO(__NR_syslog, "3s 1m");
- SY(__NR_syslog, x0+2, x0, x0+1);
+ SY(__NR_syslog, x0+2, x0, x0+1); FAIL;
// __NR_setitimer 104
GO(__NR_setitimer, "3s 2m");
- SY(__NR_setitimer, x0, x0+1, x0+1);
+ SY(__NR_setitimer, x0, x0+1, x0+1); FAIL;
// __NR_getitimer 105
GO(__NR_getitimer, "2s 1m");
- SY(__NR_getitimer, x0, x0, x0);
+ SY(__NR_getitimer, x0, x0, x0); FAIL;
// __NR_stat 106
GO(__NR_stat, "2s 2m");
- SY(__NR_stat, x0, x0);
+ SY(__NR_stat, x0, x0); FAIL;
// __NR_lstat 107
GO(__NR_lstat, "2s 2m");
- SY(__NR_lstat, x0, x0);
+ SY(__NR_lstat, x0, x0); FAIL;
// __NR_fstat 108
GO(__NR_fstat, "2s 1m");
- SY(__NR_fstat, x0, x0);
+ SY(__NR_fstat, x0, x0); FAIL;
// __NR_olduname 109
@@ -479,13 +482,13 @@ int main(void)
// __NR_iopl 110
GO(__NR_iopl, "1s 0m");
- SY(__NR_iopl, x0);
+ SY(__NR_iopl, x0+100); FAIL;
// __NR_vhangup 111
GO(__NR_vhangup, "0s 0m");
- SY(__NR_vhangup);
+ SY(__NR_vhangup); SUCC_OR_FAIL; // Will succeed for superuser
// __NR_idle 112
GO(__NR_idle, "ni");
- SY(__NR_idle);
+ SY(__NR_idle); FAIL;
// __NR_vm86old 113
@@ -495,13 +498,13 @@ int main(void)
// __NR_wait4 114
GO(__NR_wait4, "4s 2m");
- SY(__NR_wait4, x0, x0+1, x0, x0+1);
+ SY(__NR_wait4, x0, x0+1, x0, x0+1); FAIL;
// __NR_swapoff 115
GO(__NR_swapoff, "n/a");
- //SY(__NR_swapoff); // (Not yet handled by Valgrind)
+ //SY(__NR_swapoff); // (Not yet handled by Valgrind) FAIL;
// __NR_sysinfo 116
GO(__NR_sysinfo, "1s 1m");
- SY(__NR_sysinfo, x0);
+ SY(__NR_sysinfo, x0); FAIL;
// __NR_ipc 117
@@ -511,13 +514,13 @@ int main(void)
#include <asm/ipc.h>
GO(__NR_ipc, "5s 0m");
- SY(__NR_ipc, x0+4, x0, x0, x0, x0, x0);
+ SY(__NR_ipc, x0+4, x0, x0, x0, x0, x0); FAIL;
// __NR_fsync 118
GO(__NR_fsync, "1s 0m");
- SY(__NR_fsync, x0-1);
+ SY(__NR_fsync, x0-1); FAIL;
// __NR_sigreturn 119
//GO(__NR_sigreturn, ".s .m");
- //SY(__NR_sigreturn);
+ //SY(__NR_sigreturn); FAIL;
// __NR_clone 120
@@ -529,191 +532,189 @@ int main(void)
// XXX: should really be "4s 2m"? Not sure... (see PRE(sys_clone))
GO(__NR_clone, "4s 0m");
- if (SY(__NR_clone, x0|CLONE_PARENT_SETTID|SIGCHLD, x0, x0, x0) == 0)
- {
- SY(__NR_exit, 0);
+ SY(__NR_clone, x0|CLONE_PARENT_SETTID|SIGCHLD, x0, x0, x0); FAIL;
+ if (0 == res) {
+ SY(__NR_exit, 0); FAIL;
}
// __NR_setdomainname 121
GO(__NR_setdomainname, "n/a");
- //SY(__NR_setdomainname); // (Not yet handled by Valgrind)
+ //SY(__NR_setdomainname); // (Not yet handled by Valgrind) FAIL;
// __NR_uname 122
GO(__NR_uname, "1s 1m");
- SY(__NR_uname, x0);
+ SY(__NR_uname, x0); FAIL;
// __NR_modify_ldt 123
GO(__NR_modify_ldt, "3s 1m");
- SY(__NR_modify_ldt, x0, x0, x0+1);
+ SY(__NR_modify_ldt, x0+1, x0, x0+1); FAILx(EINVAL);
// __NR_adjtimex 124
// XXX: need to do properly, but deref'ing NULL...
// GO(__NR_adjtimex, "1s 1m");
-// SY(__NR_adjtimex, x0);
+// SY(__NR_adjtimex, x0); FAIL;
// __NR_mprotect 125
GO(__NR_mprotect, "3s 0m");
- SY(__NR_mprotect, x0, x0, x0);
+ SY(__NR_mprotect, x0+1, x0, x0); FAILx(EINVAL);
// __NR_sigprocmask 126
- {
GO(__NR_sigprocmask, "3s 2m");
- SY(__NR_sigprocmask, x0, x0+&px[1], x0+&px[1]);
- }
+ SY(__NR_sigprocmask, x0, x0+&px[1], x0+&px[1]); SUCC;
// __NR_create_module 127
GO(__NR_create_module, "ni");
- SY(__NR_create_module);
+ SY(__NR_create_module); FAIL;
// __NR_init_module 128
GO(__NR_init_module, "3s 2m");
- SY(__NR_init_module, x0, x0+1, x0);
+ SY(__NR_init_module, x0, x0+1, x0); FAIL;
// __NR_delete_module 129
GO(__NR_delete_module, "n/a");
- //SY(__NR_delete_module); // (Not yet handled by Valgrind)
+ //SY(__NR_delete_module); // (Not yet handled by Valgrind) FAIL;
// __NR_get_kernel_syms 130
GO(__NR_get_kernel_syms, "ni");
- SY(__NR_get_kernel_syms);
+ SY(__NR_get_kernel_syms); FAIL;
// __NR_quotactl 131
GO(__NR_quotactl, "4s 1m");
- SY(__NR_quotactl, x0, x0, x0, x0);
+ SY(__NR_quotactl, x0, x0, x0, x0); FAIL;
// __NR_getpgid 132
GO(__NR_getpgid, "1s 0m");
- SY(__NR_getpgid, x0);
+ SY(__NR_getpgid, x0-1); FAIL;
// __NR_fchdir 133
GO(__NR_fchdir, "1s 0m");
- SY(__NR_fchdir, x0-1);
+ SY(__NR_fchdir, x0-1); FAIL;
// __NR_bdflush 134
GO(__NR_bdflush, "n/a");
- //SY(__NR_bdflush); // (Not yet handled by Valgrind)
+ //SY(__NR_bdflush); // (Not yet handled by Valgrind) FAIL;
// __NR_sysfs 135
//GO(__NR_sysfs, ".s .m");
- //SY(__NR_sysfs);
+ //SY(__NR_sysfs); FAIL;
// __NR_personality 136
GO(__NR_personality, "1s 0m");
- SY(__NR_personality, x0);
+ SY(__NR_personality, x0+0xffffffff); SUCC;
// __NR_afs_syscall 137
GO(__NR_afs_syscall, "ni");
- SY(__NR_afs_syscall);
+ SY(__NR_afs_syscall); FAIL;
// __NR_setfsuid 138
GO(__NR_setfsuid, "1s 0m");
- SY(__NR_setfsuid, x0);
+ SY(__NR_setfsuid, x0); SUCC; // This syscall has a stupid return value
// __NR_setfsgid 139
GO(__NR_setfsgid, "1s 0m");
- SY(__NR_setfsgid, x0);
+ SY(__NR_setfsgid, x0); SUCC; // This syscall has a stupid return value
// __NR__llseek 140
GO(__NR__llseek, "5s 1m");
- SY(__NR__llseek, x0, x0, x0, x0, x0);
+ SY(__NR__llseek, x0, x0, x0, x0, x0); FAIL;
// __NR_getdents 141
GO(__NR_getdents, "3s 1m");
- SY(__NR_getdents, x0, x0, x0+1);
+ SY(__NR_getdents, x0, x0, x0+1); FAIL;
// __NR__newselect 142
GO(__NR__newselect, "5s 4m");
- SY(__NR__newselect, x0+8, x0+0xffffffff, x0+1, x0+1, x0+1);
+ SY(__NR__newselect, x0+8, x0+0xffffffff, x0+1, x0+1, x0+1); FAIL;
// __NR_flock 143
GO(__NR_flock, "2s 0m");
- SY(__NR_flock, x0, x0);
+ SY(__NR_flock, x0, x0); FAIL;
// __NR_msync 144
- GO(__NR_msync, "3s 0m");
- SY(__NR_msync, x0, x0, x0);
+ GO(__NR_msync, "3s 1m");
+ SY(__NR_msync, x0, x0+1, x0); FAIL;
// __NR_readv 145
GO(__NR_readv, "3s 1m");
- SY(__NR_readv, x0, x0, x0+1);
+ SY(__NR_readv, x0, x0, x0+1); FAIL;
// __NR_writev 146
GO(__NR_writev, "3s 1m");
- SY(__NR_writev, x0, x0, x0+1);
+ SY(__NR_writev, x0, x0, x0+1); FAIL;
// __NR_getsid 147
GO(__NR_getsid, "1s 0m");
- SY(__NR_getsid, x0);
+ SY(__NR_getsid, x0-1); FAIL;
// __NR_fdatasync 148
GO(__NR_fdatasync, "1s 0m");
- SY(__NR_fdatasync, x0-1);
+ SY(__NR_fdatasync, x0-1); FAIL;
// __NR__sysctl 149
GO(__NR__sysctl, "1s 1m");
- SY(__NR__sysctl, x0);
+ SY(__NR__sysctl, x0); FAIL;
// __NR_mlock 150
GO(__NR_mlock, "2s 0m");
- SY(__NR_mlock, x0, x0);
+ SY(__NR_mlock, x0, x0+1); FAIL;
// __NR_munlock 151
GO(__NR_munlock, "2s 0m");
- SY(__NR_munlock, x0, x0);
+ SY(__NR_munlock, x0, x0+1); FAIL;
// __NR_mlockall 152
- GO(__NR_mlockall, "2s 0m");
- SY(__NR_mlockall, x0, x0);
+ GO(__NR_mlockall, "1s 0m");
+ SY(__NR_mlockall, x0-1); FAIL;
// __NR_munlockall 153
GO(__NR_munlockall, "0s 0m");
- SY(__NR_munlockall);
+ SY(__NR_munlockall); SUCC;
// __NR_sched_setparam 154
GO(__NR_sched_setparam, "2s 1m");
- SY(__NR_sched_setparam, x0, x0);
+ SY(__NR_sched_setparam, x0, x0); FAIL;
// __NR_sched_getparam 155
GO(__NR_sched_getparam, "2s 1m");
- SY(__NR_sched_getparam, x0, x0);
+ SY(__NR_sched_getparam, x0, x0); FAIL;
// __NR_sched_setscheduler 156
GO(__NR_sched_setscheduler, "3s 1m");
- SY(__NR_sched_setscheduler, x0, x0, x0+1);
+ SY(__NR_sched_setscheduler, x0-1, x0, x0+1); FAIL;
// __NR_sched_getscheduler 157
GO(__NR_sched_getscheduler, "1s 0m");
- SY(__NR_sched_getscheduler, x0);
+ SY(__NR_sched_getscheduler, x0-1); FAIL;
// __NR_sched_yield 158
//GO(__NR_sched_yield, ".s .m");
- //SY(__NR_sched_yield);
+ //SY(__NR_sched_yield); FAIL;
// __NR_sched_get_priority_max 159
GO(__NR_sched_get_priority_max, "1s 0m");
- SY(__NR_sched_get_priority_max, x0);
+ SY(__NR_sched_get_priority_max, x0-1); FAIL;
// __NR_sched_get_priority_min 160
GO(__NR_sched_get_priority_min, "1s 0m");
- SY(__NR_sched_get_priority_min, x0);
+ SY(__NR_sched_get_priority_min, x0-1); FAIL;
// __NR_sched_rr_get_interval 161
GO(__NR_sched_rr_get_interval, "n/a");
- //SY(__NR_sched_rr_get_interval); // (Not yet handled by Valgrind)
+ //SY(__NR_sched_rr_get_interval); // (Not yet handled by Valgrind) FAIL;
// __NR_nanosleep 162
GO(__NR_nanosleep, "2s 2m");
- SY(__NR_nanosleep, x0, x0+1);
+ SY(__NR_nanosleep, x0, x0+1); FAIL;
// __NR_mremap 163
//GO(__NR_mremap, ".s .m");
- //SY(__NR_mremap);
+ //SY(__NR_mremap); FAIL;
// __NR_setresuid 164
GO(__NR_setresuid, "3s 0m");
- SY(__NR_setresuid, x0, x0, x0);
+ SY(__NR_setresuid, x0, x0, x0); FAIL;
// __NR_getresuid 165
GO(__NR_getresuid, "3s 3m");
- SY(__NR_getresuid, x0, x0, x0);
+ SY(__NR_getresuid, x0, x0, x0); FAIL;
// __NR_vm86 166
@@ -723,293 +724,293 @@ int main(void)
// __NR_query_module 167
GO(__NR_query_module, "ni");
- SY(__NR_query_module);
+ SY(__NR_query_module); FAIL;
// __NR_poll 168
GO(__NR_poll, "3s 1m");
- SY(__NR_poll, x0, x0+1, x0);
+ SY(__NR_poll, x0, x0+1, x0); FAIL;
// __NR_nfsservctl 169
GO(__NR_nfsservctl, "n/a");
- //SY(__NR_nfsservctl); // (Not yet handled by Valgrind)
+ //SY(__NR_nfsservctl); // (Not yet handled by Valgrind) FAIL;
// __NR_setresgid 170
GO(__NR_setresgid, "3s 0m");
- SY(__NR_setresgid, x0, x0, x0);
+ SY(__NR_setresgid, x0, x0, x0); FAIL;
// __NR_getresgid 171
GO(__NR_getresgid, "3s 3m");
- SY(__NR_getresgid, x0, x0, x0);
+ SY(__NR_getresgid, x0, x0, x0); FAIL;
// __NR_prctl 172
GO(__NR_prctl, "5s 0m");
- SY(__NR_prctl, x0, x0, x0, x0, x0);
+ SY(__NR_prctl, x0, x0, x0, x0, x0); FAIL;
// __NR_rt_sigreturn 173
GO(__NR_rt_sigreturn, "n/a");
- //SY(__NR_rt_sigreturn); // (Not yet handled by Valgrind)
+ //SY(__NR_rt_sigreturn); // (Not yet handled by Valgrind) FAIL;
// __NR_rt_sigaction 174
GO(__NR_rt_sigaction, "4s 2m");
- SY(__NR_rt_sigaction, x0, x0+1, x0+1, x0);
+ SY(__NR_rt_sigaction, x0, x0+1, x0+1, x0); FAIL;
// __NR_rt_sigprocmask 175
GO(__NR_rt_sigprocmask, "4s 2m");
- SY(__NR_rt_sigprocmask, x0, x0+1, x0+1, x0);
+ SY(__NR_rt_sigprocmask, x0, x0+1, x0+1, x0); FAIL;
// __NR_rt_sigpending 176
GO(__NR_rt_sigpending, "2s 1m");
- SY(__NR_rt_sigpending, x0, x0+1);
+ SY(__NR_rt_sigpending, x0, x0+1); FAIL;
// __NR_rt_sigtimedwait 177
GO(__NR_rt_sigtimedwait, "4s 3m");
- SY(__NR_rt_sigtimedwait, x0+1, x0+1, x0+1, x0);
+ SY(__NR_rt_sigtimedwait, x0+1, x0+1, x0+1, x0); FAIL;
// __NR_rt_sigqueueinfo 178
- //GO(__NR_rt_sigqueueinfo, ".s .m");
- //SY(__NR_rt_sigqueueinfo);
+ GO(__NR_rt_sigqueueinfo, "3s 1m");
+ SY(__NR_rt_sigqueueinfo, x0, x0+1, x0); FAIL;
// __NR_rt_sigsuspend 179
//GO(__NR_rt_sigsuspend, ".s .m");
- //SY(__NR_rt_sigsuspend);
+ //SY(__NR_rt_sigsuspend); FAIL;
// __NR_pread64 180
GO(__NR_pread64, "5s 1m");
- SY(__NR_pread64, x0, x0, x0+1, x0, x0);
+ SY(__NR_pread64, x0, x0, x0+1, x0, x0); FAIL;
// __NR_pwrite64 181
GO(__NR_pwrite64, "5s 1m");
- SY(__NR_pwrite64, x0, x0, x0+1, x0, x0);
+ SY(__NR_pwrite64, x0, x0, x0+1, x0, x0); FAIL;
// __NR_chown 182
GO(__NR_chown, "3s 1m");
- SY(__NR_chown, x0, x0, x0);
+ SY(__NR_chown, x0, x0, x0); FAIL;
// __NR_getcwd 183
GO(__NR_getcwd, "2s 1m");
- SY(__NR_getcwd, x0, x0+1);
+ SY(__NR_getcwd, x0, x0+1); FAIL;
// __NR_capget 184
GO(__NR_capget, "2s 2m");
- SY(__NR_capget, x0, x0);
+ SY(__NR_capget, x0, x0); FAIL;
// __NR_capset 185
GO(__NR_capset, "2s 2m");
- SY(__NR_capset, x0, x0);
+ SY(__NR_capset, x0, x0); FAIL;
// __NR_sigaltstack 186
//GO(__NR_sigaltstack, ".s .m");
- //SY(__NR_sigaltstack);
+ //SY(__NR_sigaltstack); FAIL;
// __NR_sendfile 187
GO(__NR_sendfile, "4s 1m");
- SY(__NR_sendfile, x0, x0, x0+1, x0);
+ SY(__NR_sendfile, x0, x0, x0+1, x0); FAIL;
// __NR_getpmsg 188
//GO(__NR_getpmsg, ".s .m");
- //SY(__NR_getpmsg);
+ //SY(__NR_getpmsg); FAIL;
// __NR_putpmsg 189
//GO(__NR_putpmsg, ".s .m");
- //SY(__NR_putpmsg);
+ //SY(__NR_putpmsg); FAIL;
// __NR_vfork 190
- GO(__NR_vfork, "0s 0m");
+ GO(__NR_vfork, "other");
// (sse scalar_vfork.c)
// __NR_ugetrlimit 191
GO(__NR_ugetrlimit, "2s 1m");
- SY(__NR_ugetrlimit, x0, x0);
+ SY(__NR_ugetrlimit, x0, x0); FAIL;
// __NR_mmap2 192
GO(__NR_mmap2, "5s 0m");
- SY(__NR_mmap2, x0, x0, x0, x0, x0-1, x0);
+ SY(__NR_mmap2, x0, x0, x0, x0, x0-1, x0); FAIL;
// __NR_truncate64 193
GO(__NR_truncate64, "3s 1m");
- SY(__NR_truncate64, x0, x0, x0);
+ SY(__NR_truncate64, x0, x0, x0); FAIL;
// __NR_ftruncate64 194
GO(__NR_ftruncate64, "3s 0m");
- SY(__NR_ftruncate64, x0, x0, x0);
+ SY(__NR_ftruncate64, x0, x0, x0); FAIL;
// __NR_stat64 195
GO(__NR_stat64, "2s 2m");
- SY(__NR_stat64, x0, x0);
+ SY(__NR_stat64, x0, x0); FAIL;
// __NR_lstat64 196
GO(__NR_lstat64, "2s 2m");
- SY(__NR_lstat64, x0, x0);
+ SY(__NR_lstat64, x0, x0); FAIL;
// __NR_fstat64 197
GO(__NR_fstat64, "2s 1m");
- SY(__NR_fstat64, x0, x0);
+ SY(__NR_fstat64, x0, x0); FAIL;
// __NR_lchown32 198
GO(__NR_lchown32, "3s 1m");
- SY(__NR_lchown32, x0, x0, x0);
+ SY(__NR_lchown32, x0, x0, x0); FAIL;
// __NR_getuid32 199
GO(__NR_getuid32, "0s 0m");
- SY(__NR_getuid32);
+ SY(__NR_getuid32); SUCC;
// __NR_getgid32 200
GO(__NR_getgid32, "0s 0m");
- SY(__NR_getgid32);
+ SY(__NR_getgid32); SUCC;
// __NR_geteuid32 201
GO(__NR_geteuid32, "0s 0m");
- SY(__NR_geteuid32);
+ SY(__NR_geteuid32); SUCC;
// __NR_getegid32 202
GO(__NR_getegid32, "0s 0m");
- SY(__NR_getegid32);
+ SY(__NR_getegid32); SUCC;
// __NR_setreuid32 203
GO(__NR_setreuid32, "2s 0m");
- SY(__NR_setreuid32, x0, x0);
+ SY(__NR_setreuid32, x0, x0); FAIL;
// __NR_setregid32 204
GO(__NR_setregid32, "2s 0m");
- SY(__NR_setregid32, x0, x0);
+ SY(__NR_setregid32, x0, x0); FAIL;
// __NR_getgroups32 205
GO(__NR_getgroups32, "2s 1m");
- SY(__NR_getgroups32, x0+1, x0+1);
+ SY(__NR_getgroups32, x0+1, x0+1); FAIL;
// __NR_setgroups32 206
GO(__NR_setgroups32, "2s 1m");
- SY(__NR_setgroups32, x0+1, x0+1);
+ SY(__NR_setgroups32, x0+1, x0+1); FAIL;
// __NR_fchown32 207
GO(__NR_fchown32, "3s 0m");
- SY(__NR_fchown32, x0, x0, x0);
+ SY(__NR_fchown32, x0, x0, x0); FAIL;
// __NR_setresuid32 208
GO(__NR_setresuid32, "3s 0m");
- SY(__NR_setresuid32, x0, x0, x0);
+ SY(__NR_setresuid32, x0, x0, x0); FAIL;
// __NR_getresuid32 209
GO(__NR_getresuid32, "3s 3m");
- SY(__NR_getresuid32, x0, x0, x0);
+ SY(__NR_getresuid32, x0, x0, x0); FAIL;
// __NR_setresgid32 210
GO(__NR_setresgid32, "3s 0m");
- SY(__NR_setresgid32, x0, x0, x0);
+ SY(__NR_setresgid32, x0, x0, x0); FAIL;
// __NR_getresgid32 211
GO(__NR_getresgid32, "3s 3m");
- SY(__NR_getresgid32, x0, x0, x0);
+ SY(__NR_getresgid32, x0, x0, x0); FAIL;
// __NR_chown32 212
GO(__NR_chown32, "3s 1m");
- SY(__NR_chown32, x0, x0, x0);
+ SY(__NR_chown32, x0, x0, x0); FAIL;
// __NR_setuid32 213
GO(__NR_setuid32, "1s 0m");
- SY(__NR_setuid32, x0);
+ SY(__NR_setuid32, x0); FAIL;
// __NR_setgid32 214
GO(__NR_setgid32, "1s 0m");
- SY(__NR_setgid32, x0);
+ SY(__NR_setgid32, x0); FAIL;
// __NR_setfsuid32 215
GO(__NR_setfsuid32, "1s 0m");
- SY(__NR_setfsuid32, x0);
+ SY(__NR_setfsuid32, x0); SUCC; // This syscall has a stupid return value
// __NR_setfsgid32 216
GO(__NR_setfsgid32, "1s 0m");
- SY(__NR_setfsgid32, x0);
+ SY(__NR_setfsgid32, x0); SUCC; // This syscall has a stupid return value
// __NR_pivot_root 217
GO(__NR_pivot_root, "n/a");
- //SY(__NR_pivot_root); // (Not yet handled by Valgrind)
+ //SY(__NR_pivot_root); // (Not yet handled by Valgrind) FAIL;
// __NR_mincore 218
GO(__NR_mincore, "3s 1m");
- SY(__NR_mincore, x0, x0+40960, x0);
+ SY(__NR_mincore, x0, x0+40960, x0); FAIL;
// __NR_madvise 219
GO(__NR_madvise, "3s 0m");
- SY(__NR_madvise, x0, x0, x0);
+ SY(__NR_madvise, x0, x0+1, x0); FAILx(ENOMEM);
// __NR_getdents64 220
GO(__NR_getdents64, "3s 1m");
- SY(__NR_getdents64, x0, x0, x0+1);
+ SY(__NR_getdents64, x0, x0, x0+1); FAIL;
// __NR_fcntl64 221
GO(__NR_fcntl64, "3s 0m");
- SY(__NR_fcntl64, x0, x0, x0);
+ SY(__NR_fcntl64, x0-1, x0, x0); FAILx(EBADF);
// 222
GO(222, "ni");
- SY(222);
+ SY(222); FAIL;
// 223
GO(223, "ni");
- SY(223);
+ SY(223); FAIL;
// __NR_gettid 224
GO(__NR_gettid, "n/a");
- //SY(__NR_gettid); // (Not yet handled by Valgrind)
+ //SY(__NR_gettid); // (Not yet handled by Valgrind) FAIL;
// __NR_readahead 225
GO(__NR_readahead, "n/a");
- //SY(__NR_readahead); // (Not yet handled by Valgrind)
+ //SY(__NR_readahead); // (Not yet handled by Valgrind) FAIL;
// __NR_setxattr 226
GO(__NR_setxattr, "5s 3m");
- SY(__NR_setxattr, x0, x0, x0, x0+1, x0);
+ SY(__NR_setxattr, x0, x0, x0, x0+1, x0); FAIL;
// __NR_lsetxattr 227
GO(__NR_lsetxattr, "5s 3m");
- SY(__NR_lsetxattr, x0, x0, x0, x0+1, x0);
+ SY(__NR_lsetxattr, x0, x0, x0, x0+1, x0); FAIL;
// __NR_fsetxattr 228
GO(__NR_fsetxattr, "5s 2m");
- SY(__NR_fsetxattr, x0, x0, x0, x0+1, x0);
+ SY(__NR_fsetxattr, x0, x0, x0, x0+1, x0); FAIL;
// __NR_getxattr 229
GO(__NR_getxattr, "4s 3m");
- SY(__NR_getxattr, x0, x0, x0, x0+1);
+ SY(__NR_getxattr, x0, x0, x0, x0+1); FAIL;
// __NR_lgetxattr 230
GO(__NR_lgetxattr, "4s 3m");
- SY(__NR_lgetxattr, x0, x0, x0, x0+1);
+ SY(__NR_lgetxattr, x0, x0, x0, x0+1); FAIL;
// __NR_fgetxattr 231
GO(__NR_fgetxattr, "4s 2m");
- SY(__NR_fgetxattr, x0, x0, x0, x0+1);
+ SY(__NR_fgetxattr, x0, x0, x0, x0+1); FAIL;
// __NR_listxattr 232
GO(__NR_listxattr, "3s 2m");
- SY(__NR_listxattr, x0, x0, x0+1);
+ SY(__NR_listxattr, x0, x0, x0+1); FAIL;
// __NR_llistxattr 233
GO(__NR_llistxattr, "3s 2m");
- SY(__NR_llistxattr, x0, x0, x0+1);
+ SY(__NR_llistxattr, x0, x0, x0+1); FAIL;
// __NR_flistxattr 234
GO(__NR_flistxattr, "3s 1m");
- SY(__NR_flistxattr, x0, x0, x0+1);
+ SY(__NR_flistxattr, x0-1, x0, x0+1); FAILx(EBADF);
// __NR_removexattr 235
GO(__NR_removexattr, "2s 2m");
- SY(__NR_removexattr, x0, x0);
+ SY(__NR_removexattr, x0, x0); FAIL;
// __NR_lremovexattr 236
GO(__NR_lremovexattr, "2s 2m");
- SY(__NR_lremovexattr, x0, x0);
+ SY(__NR_lremovexattr, x0, x0); FAIL;
// __NR_fremovexattr 237
GO(__NR_fremovexattr, "2s 1m");
- SY(__NR_fremovexattr, x0, x0);
+ SY(__NR_fremovexattr, x0, x0); FAIL;
// __NR_tkill 238
GO(__NR_tkill, "n/a");
- //SY(__NR_tkill); // (Not yet handled by Valgrind)
+ //SY(__NR_tkill); // (Not yet handled by Valgrind) FAIL;
// __NR_sendfile64 239
GO(__NR_sendfile64, "4s 1m");
- SY(__NR_sendfile64, x0, x0, x0+1, x0);
+ SY(__NR_sendfile64, x0, x0, x0+1, x0); FAIL;
// __NR_futex 240
@@ -1019,25 +1020,25 @@ int main(void)
// XXX: again, glibc not doing 6th arg means we have only 5s errors
GO(__NR_futex, "5s 2m");
- SY(__NR_futex, x0+FUTEX_WAIT, x0, x0, x0+1, x0, x0);
+ SY(__NR_futex, x0+FUTEX_WAIT, x0, x0, x0+1, x0, x0); FAIL;
// __NR_sched_setaffinity 241
GO(__NR_sched_setaffinity, "3s 1m");
- SY(__NR_sched_setaffinity, x0, x0+1, x0);
+ SY(__NR_sched_setaffinity, x0, x0+1, x0); FAIL;
// __NR_sched_getaffinity 242
GO(__NR_sched_getaffinity, "3s 1m");
- SY(__NR_sched_getaffinity, x0, x0+1, x0);
+ SY(__NR_sched_getaffinity, x0, x0+1, x0); FAIL;
// __NR_set_thread_area 243
//GO(__NR_set_thread_area, ".s .m");
- //SY(__NR_set_thread_area);
+ //SY(__NR_set_thread_area); FAIL;
// __NR_get_thread_area 244
//GO(__NR_get_thread_area, ".s .m");
- //SY(__NR_get_thread_area);
+ //SY(__NR_get_thread_area); FAIL;
// __NR_io_setup 245
GO(__NR_io_setup, "2s 1m");
- SY(__NR_io_setup, x0, x0);
+ SY(__NR_io_setup, x0, x0); FAIL;
// __NR_io_destroy 246
@@ -1052,26 +1053,26 @@ int main(void)
struct fake_aio_ring* ringptr = ˚
GO(__NR_io_destroy, "1s 0m");
- SY(__NR_io_destroy, x0+&ringptr);
+ SY(__NR_io_destroy, x0+&ringptr); FAIL;
}
// __NR_io_getevents 247
GO(__NR_io_getevents, "5s 2m");
- SY(__NR_io_getevents, x0, x0, x0+1, x0, x0+1);
+ SY(__NR_io_getevents, x0, x0, x0+1, x0, x0+1); FAIL;
// __NR_io_submit 248
GO(__NR_io_submit, "3s 1m");
- SY(__NR_io_submit, x0, x0+1, x0);
+ SY(__NR_io_submit, x0, x0+1, x0); FAIL;
// __NR_io_cancel 249
GO(__NR_io_cancel, "3s 2m");
- SY(__NR_io_cancel, x0, x0, x0);
+ SY(__NR_io_cancel, x0, x0, x0); FAIL;
// __NR_fadvise64 250
GO(__NR_fadvise64, "n/a");
- //SY(__NR_fadvise64); // (Not yet handled by Valgrind)
+ //SY(__NR_fadvise64); // (Not yet handled by Valgrind) FAIL;
// 251
GO(251, "ni");
- SY(251);
+ SY(251); FAIL;
// __NR_exit_group 252
@@ -1081,133 +1082,133 @@ int main(void)
// __NR_lookup_dcookie 253
GO(__NR_lookup_dcookie, "4s 1m");
- SY(__NR_lookup_dcookie, x0, x0, x0, x0+1);
+ SY(__NR_lookup_dcookie, x0, x0, x0, x0+1); FAIL;
// __NR_epoll_create 254
GO(__NR_epoll_create, "1s 0m");
- SY(__NR_epoll_create, x0);
+ SY(__NR_epoll_create, x0); FAIL;
// __NR_epoll_ctl 255
GO(__NR_epoll_ctl, "4s 1m");
- SY(__NR_epoll_ctl, x0, x0, x0, x0);
+ SY(__NR_epoll_ctl, x0, x0, x0, x0); FAIL;
// __NR_epoll_wait 256
GO(__NR_epoll_wait, "4s 1m");
- SY(__NR_epoll_wait, x0, x0, x0+1, x0);
+ SY(__NR_epoll_wait, x0, x0, x0+1, x0); FAIL;
// __NR_remap_file_pages 257
GO(__NR_remap_file_pages, "n/a");
- //SY(__NR_remap_file_pages); // (Not yet handled by Valgrind)
+ //SY(__NR_remap_file_pages); // (Not yet handled by Valgrind) FAIL;
// __NR_set_tid_address 258
GO(__NR_set_tid_address, "1s 0m");
- SY(__NR_set_tid_address, x0);
+ SY(__NR_set_tid_address, x0); SUCC;
// __NR_timer_create 259
- //GO(__NR_timer_create, ".s .m");
- //SY(__NR_timer_create);
+ GO(__NR_timer_create, "3s 2m");
+ SY(__NR_timer_create, x0, x0+1, x0); FAIL;
// __NR_timer_settime (__NR_timer_create+1)
- //GO(__NR_timer_settime, ".s .m");
- //SY(__NR_timer_settime);
+ GO(__NR_timer_settime, "4s 2m");
+ SY(__NR_timer_settime, x0, x0, x0, x0+1); FAIL;
// __NR_timer_gettime (__NR_timer_create+2)
- //GO(__NR_timer_gettime, ".s .m");
- //SY(__NR_timer_gettime);
+ GO(__NR_timer_gettime, "2s 1m");
+ SY(__NR_timer_gettime, x0, x0); FAIL;
// __NR_timer_getoverrun (__NR_timer_create+3)
- //GO(__NR_timer_getoverrun, ".s .m");
- //SY(__NR_timer_getoverrun);
+ GO(__NR_timer_getoverrun, "1s 0m");
+ SY(__NR_timer_getoverrun, x0); FAIL;
// __NR_timer_delete (__NR_timer_create+4)
- //GO(__NR_timer_delete, ".s .m");
- //SY(__NR_timer_delete);
+ GO(__NR_timer_delete, "1s 0m");
+ SY(__NR_timer_delete, x0); FAIL;
// __NR_clock_settime (__NR_timer_create+5)
- //GO(__NR_clock_settime, ".s .m");
- //SY(__NR_clock_settime);
+ GO(__NR_clock_settime, "2s 1m");
+ SY(__NR_clock_settime, x0, x0); FAIL; FAIL;
// __NR_clock_gettime (__NR_timer_create+6)
- //GO(__NR_clock_gettime, ".s .m");
- //SY(__NR_clock_gettime);
+ GO(__NR_clock_gettime, "2s 1m");
+ SY(__NR_clock_gettime, x0, x0); FAIL;
// __NR_clock_getres (__NR_timer_create+7)
- //GO(__NR_clock_getres, ".s .m");
- //SY(__NR_clock_getres);
+ GO(__NR_clock_getres, "2s 1m");
+ SY(__NR_clock_getres, x0+1, x0+1); FAIL; FAIL;
// __NR_clock_nanosleep (__NR_timer_create+8)
- //GO(__NR_clock_nanosleep, ".s .m");
- //SY(__NR_clock_nanosleep);
+ GO(__NR_clock_nanosleep, "n/a");
+ //SY(__NR_clock_nanosleep); // (Not yet handled by Valgrind) FAIL;
// __NR_statfs64 268
GO(__NR_statfs64, "3s 2m");
- SY(__NR_statfs64, x0, x0+1, x0);
+ SY(__NR_statfs64, x0, x0+1, x0); FAIL;
// __NR_fstatfs64 269
GO(__NR_fstatfs64, "3s 1m");
- SY(__NR_fstatfs64, x0, x0+1, x0);
+ SY(__NR_fstatfs64, x0, x0+1, x0); FAIL;
// __NR_tgkill 270
GO(__NR_tgkill, "n/a");
- //SY(__NR_tgkill); // (Not yet handled by Valgrind)
+ //SY(__NR_tgkill); // (Not yet handled by Valgrind) FAIL;
// __NR_utimes 271
GO(__NR_utimes, "2s 2m");
- SY(__NR_utimes, x0, x0+1);
+ SY(__NR_utimes, x0, x0+1); FAIL;
// __NR_fadvise64_64 272
GO(__NR_fadvise64_64, "n/a");
- //SY(__NR_fadvise64_64); // (Not yet handled by Valgrind)
+ //SY(__NR_fadvise64_64); // (Not yet handled by Valgrind) FAIL;
// __NR_vserver 273
GO(__NR_vserver, "ni");
- SY(__NR_vserver);
+ SY(__NR_vserver); FAIL;
// __NR_mbind 274
GO(__NR_mbind, "n/a");
- //SY(__NR_mbind); // (Not yet handled by Valgrind)
+ //SY(__NR_mbind); // (Not yet handled by Valgrind) FAIL;
// __NR_get_mempolicy 275
GO(__NR_get_mempolicy, "n/a");
- //SY(__NR_get_mempolicy); // (Not yet handled by Valgrind)
+ //SY(__NR_get_mempolicy); // (Not yet handled by Valgrind) FAIL;
// __NR_set_mempolicy 276
GO(__NR_set_mempolicy, "n/a");
- //SY(__NR_set_mempolicy); // (Not yet handled by Valgrind)
+ //SY(__NR_set_mempolicy); // (Not yet handled by Valgrind) FAIL;
// __NR_mq_open 277
GO(__NR_mq_open, "4s 2m");
- SY(__NR_mq_open, x0, x0+O_CREAT, x0, x0+1);
+ SY(__NR_mq_open, x0, x0+O_CREAT, x0, x0+1); FAIL;
// __NR_mq_unlink (__NR_mq_open+1)
GO(__NR_mq_unlink, "1s 1m");
- SY(__NR_mq_unlink, x0);
+ SY(__NR_mq_unlink, x0); FAIL;
// __NR_mq_timedsend (__NR_mq_open+2)
GO(__NR_mq_timedsend, "5s 2m");
- SY(__NR_mq_timedsend, x0, x0, x0+1, x0, x0+1);
+ SY(__NR_mq_timedsend, x0, x0, x0+1, x0, x0+1); FAIL;
// __NR_mq_timedreceive (__NR_mq_open+3)
GO(__NR_mq_timedreceive, "5s 3m");
- SY(__NR_mq_timedreceive, x0, x0, x0+1, x0+1, x0+1);
+ SY(__NR_mq_timedreceive, x0, x0, x0+1, x0+1, x0+1); FAIL;
// __NR_mq_notify (__NR_mq_open+4)
GO(__NR_mq_notify, "2s 1m");
- SY(__NR_mq_notify, x0, x0+1);
+ SY(__NR_mq_notify, x0, x0+1); FAIL;
// __NR_mq_getsetattr (__NR_mq_open+5)
GO(__NR_mq_getsetattr, "3s 2m");
- SY(__NR_mq_getsetattr, x0, x0+1, x0+1);
+ SY(__NR_mq_getsetattr, x0, x0+1, x0+1); FAIL;
// __NR_sys_kexec_load 283
GO(__NR_sys_kexec_load, "ni");
- SY(__NR_sys_kexec_load);
+ SY(__NR_sys_kexec_load); FAIL;
// no such syscall...
GO(9999, "1e");
- SY(9999);
+ SY(9999); FAIL;
// __NR_exit 1
GO(__NR_exit, "1s 0m");
- SY(__NR_exit, x0);
+ SY(__NR_exit, x0); FAIL;
assert(0);
--- valgrind/memcheck/tests/scalar.h #1.3:1.4
@@ -3,4 +3,5 @@
#include <assert.h>
+#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
@@ -25,5 +26,24 @@ extern long int syscall (long int __sysn
__NR_xxx, #__NR_xxx, s);
-#define SY syscall
+#define SY res = syscall
+#define FAIL assert(-1 == res);
+#define SUCC assert(-1 != res);
+#define SUCC_OR_FAIL /* no test */
+
+#define FAILx(E) \
+ do { \
+ int myerrno = errno; \
+ if (-1 == res) { \
+ if (E == myerrno) { \
+ /* as expected */ \
+ } else { \
+ fprintf(stderr, "Expected error %s (%d), got %d\n", #E, E, myerrno); \
+ exit(1); \
+ } \
+ } else { \
+ fprintf(stderr, "Expected error %s (%d), got success\n", #E, E); \
+ exit(1); \
+ } \
+ } while (0);
--- valgrind/memcheck/tests/scalar.stderr.exp #1.38:1.39
@@ -1876,5 +1876,5 @@
by 0x........: ...
-----------------------------------------------------
-144: __NR_msync 3s 0m
+144: __NR_msync 3s 1m
-----------------------------------------------------
@@ -1893,4 +1893,10 @@
by 0x........: __libc_start_main (...libc...)
by 0x........: ...
+
+Syscall param msync(start) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
145: __NR_readv 3s 1m
@@ -1998,5 +2004,5 @@
by 0x........: ...
-----------------------------------------------------
-152: __NR_mlockall 2s 0m
+152: __NR_mlockall 1s 0m
-----------------------------------------------------
@@ -2425,4 +2431,28 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+178:__NR_rt_sigqueueinfo 3s 1m
+-----------------------------------------------------
+
+Syscall param rt_sigqueueinfo(pid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param rt_sigqueueinfo(sig) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param rt_sigqueueinfo(uinfo) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param rt_sigqueueinfo(uinfo) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
180: __NR_pread64 5s 1m
-----------------------------------------------------
@@ -2615,5 +2645,5 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
-190: __NR_vfork 0s 0m
+190: __NR_vfork other
-----------------------------------------------------
-----------------------------------------------------
@@ -3915,4 +3945,164 @@
by 0x........: ...
-----------------------------------------------------
+259: __NR_timer_create 3s 2m
+-----------------------------------------------------
+
+Syscall param timer_create(clockid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_create(evp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_create(timerid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_create(evp) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param timer_create(timerid) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+260: __NR_timer_settime 4s 2m
+-----------------------------------------------------
+
+Syscall param timer_settime(timerid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_settime(flags) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_settime(value) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_settime(ovalue) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_settime(value) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param timer_settime(ovalue) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+261: __NR_timer_gettime 2s 1m
+-----------------------------------------------------
+
+Syscall param timer_gettime(timerid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_gettime(value) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param timer_gettime(value) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+262:__NR_timer_getoverrun 1s 0m
+-----------------------------------------------------
+
+Syscall param timer_getoverrun(timerid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+263: __NR_timer_delete 1s 0m
+-----------------------------------------------------
+
+Syscall param timer_delete(timerid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+264: __NR_clock_settime 2s 1m
+-----------------------------------------------------
+
+Syscall param clock_settime(clk_id) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param clock_settime(tp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param clock_settime(tp) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+265: __NR_clock_gettime 2s 1m
+-----------------------------------------------------
+
+Syscall param clock_gettime(clk_id) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param clock_gettime(tp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param clock_gettime(tp) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+266: __NR_clock_getres 2s 1m
+-----------------------------------------------------
+
+Syscall param clock_getres(clk_id) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param clock_getres(cres) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param clock_getres(cres) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+267:__NR_clock_nanosleep n/a
+-----------------------------------------------------
+-----------------------------------------------------
268: __NR_statfs64 3s 2m
-----------------------------------------------------
--- valgrind/memcheck/tests/scalar_exit_group.c #1.2:1.3
@@ -6,4 +6,5 @@ int main(void)
long* px = malloc(sizeof(long));
long x0 = px[0];
+ int res;
// All __NR_xxx numbers are taken from x86
--- valgrind/memcheck/tests/scalar_fork.c #1.1:1.2
@@ -3,4 +3,6 @@
int main(void)
{
+ int res;
+
// All __NR_xxx numbers are taken from x86
--- valgrind/memcheck/tests/scalar_vfork.c #1.1:1.2
@@ -3,4 +3,6 @@
int main(void)
{
+ in...
[truncated message content] |
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 12:58:10
|
CVS commit by nethercote:
Converted the io_* and mq_* syscalls.
M +120 -88 coregrind/vg_syscalls.c 1.215
M +2 -0 include/linux/vki.h 1.9
M +46 -23 memcheck/tests/scalar.c 1.46
M +313 -2 memcheck/tests/scalar.stderr.exp 1.38
--- valgrind/coregrind/vg_syscalls.c #1.214:1.215
@@ -6008,14 +6008,19 @@ POSTx(sys_rt_sigpending)
}
-PRE(io_setup)
+// Nb: this wrapper is "Special" because we have to pad/unpad memory around
+// the syscall itself, and this allows us to control exactly the code that
+// gets run while the padding is in place.
+PREx(sys_io_setup, Special)
{
SizeT size;
Addr addr;
- /* long io_setup (unsigned nr_events, aio_context_t *ctxp); */
- PRINT("io_setup ( %ul, %p )",arg1,arg2);
+ PRINT("sys_io_setup ( %u, %p )", arg1,arg2);
+ PRE_REG_READ2(long, "io_setup",
+ unsigned, nr_events, vki_aio_context_t *, ctxp);
PRE_MEM_WRITE( "io_setup(ctxp)", arg2, sizeof(vki_aio_context_t) );
- size = PGROUNDUP(sizeof(struct vki_aio_ring) + arg1 * sizeof(struct vki_io_event));
+ size = PGROUNDUP(sizeof(struct vki_aio_ring) +
+ arg1*sizeof(struct vki_io_event));
addr = VG_(find_map_space)(0, size, True);
VG_(map_segment)(addr, size, VKI_PROT_READ|VKI_PROT_EXEC, SF_FIXED);
@@ -6039,12 +6044,23 @@ PRE(io_setup)
}
-PRE(io_destroy)
+// Nb: This wrapper is "Special" because we need 'size' to do the unmap
+// after the syscall. We must get 'size' from the aio_ring structure,
+// before the syscall, while the aio_ring structure still exists. (And we
+// know that we must look at the aio_ring structure because Tom inspected the
+// kernel and glibc sources to see what they do, yuk.)
+PREx(sys_io_destroy, Special)
{
Segment *s = VG_(find_segment)(arg1);
- struct vki_aio_ring *r = *(struct vki_aio_ring **)arg1;
- SizeT size = PGROUNDUP(sizeof(struct vki_aio_ring) + r->nr * sizeof(struct vki_io_event));
+ struct vki_aio_ring *r;
+ SizeT size;
- /* long io_destroy (aio_context_t ctx); */
- PRINT("io_destroy ( %ul )",arg1);
+ PRINT("sys_io_destroy ( %llu )", (ULong)arg1);
+ PRE_REG_READ1(long, "io_destroy", vki_aio_context_t, ctx);
+
+ // If we are going to seg fault (due to a bogus arg1) do it as late as
+ // possible...
+ r = *(struct vki_aio_ring **)arg1;
+ size = PGROUNDUP(sizeof(struct vki_aio_ring) +
+ r->nr*sizeof(struct vki_io_event));
set_result( VG_(do_syscall)(SYSNO, arg1) );
@@ -6056,9 +6072,12 @@ PRE(io_destroy)
}
-PRE(io_getevents)
+PREx(sys_io_getevents, MayBlock)
{
- /* long io_getevents (aio_context_t ctx_id, long min_nr, long nr,
- struct io_event *events, struct timespec *timeout); */
- PRINT("io_getevents ( %ul, %l, %l, %p, %p )",arg1,arg2,arg3,arg4,arg5);
+ PRINT("sys_io_getevents ( %llu, %lld, %lld, %p, %p )",
+ (ULong)arg1,(Long)arg2,(Long)arg3,arg4,arg5);
+ PRE_REG_READ5(long, "io_getevents",
+ vki_aio_context_t, ctx_id, long, min_nr, long, nr,
+ struct io_event *, events,
+ struct timespec *, timeout);
if (arg3 > 0)
PRE_MEM_WRITE( "io_getevents(events)",
@@ -6069,5 +6088,5 @@ PRE(io_getevents)
}
-POST(io_getevents)
+POSTx(sys_io_getevents)
{
int i;
@@ -6096,15 +6115,17 @@ POST(io_getevents)
}
-PRE(io_submit)
+PREx(sys_io_submit, 0)
{
int i;
- /* long io_submit (aio_context_t ctx_id, long nr, struct iocb **iocbpp); */
- PRINT("io_submit( %ul, %l, %p )",arg1,arg2,arg3);
- PRE_MEM_READ( "io_submit(iocbpp)", arg3, sizeof(struct vki_iocb *)*arg2 );
+ PRINT("sys_io_submit( %llu, %lld, %p )", (ULong)arg1,(Long)arg2,arg3);
+ PRE_REG_READ3(long, "io_submit",
+ vki_aio_context_t, ctx_id, long, nr,
+ struct iocb **, iocbpp);
+ PRE_MEM_READ( "io_submit(iocbpp)", arg3, arg2*sizeof(struct vki_iocb *) );
+ if (arg3 != (UWord)NULL) {
for (i = 0; i < arg2; i++) {
struct vki_iocb *cb = ((struct vki_iocb **)arg3)[i];
- PRE_MEM_READ( "io_submit(iocb)",
- (Addr)cb, sizeof(struct vki_iocb) );
+ PRE_MEM_READ( "io_submit(iocb)", (Addr)cb, sizeof(struct vki_iocb) );
switch (cb->aio_lio_opcode) {
case VKI_IOCB_CMD_PREAD:
@@ -6117,28 +6138,34 @@ PRE(io_submit)
default:
- VG_(message)(Vg_DebugMsg,"Warning: unhandled io_submit opcode: %u\n",cb->aio_lio_opcode);
+ VG_(message)(Vg_DebugMsg,"Warning: unhandled io_submit opcode: %u\n",
+ cb->aio_lio_opcode);
break;
}
}
+ }
}
-PRE(io_cancel)
+PREx(sys_io_cancel, 0)
{
- /* long io_cancel (aio_context_t ctx_id, struct iocb *iocb,
- struct io_event *result); */
- PRINT("io_cancel( %ul, %p, %p )",arg1,arg2,arg3);
+ PRINT("sys_io_cancel( %llu, %p, %p )", (ULong)arg1,arg2,arg3);
+ PRE_REG_READ3(long, "io_cancel",
+ vki_aio_context_t, ctx_id, struct iocb *, iocb,
+ struct io_event *, result);
PRE_MEM_READ( "io_cancel(iocb)", arg2, sizeof(struct vki_iocb) );
PRE_MEM_WRITE( "io_cancel(result)", arg3, sizeof(struct vki_io_event) );
}
-POST(io_cancel)
+POSTx(sys_io_cancel)
{
POST_MEM_WRITE( arg3, sizeof(struct vki_io_event) );
}
-PRE(mq_open)
+PREx(sys_mq_open, 0)
{
- /* mqd_t mq_open(const char *name, int oflag, ...); */
- PRINT("mq_open( %p(%s), %d )", arg1,arg1,arg2);
+ PRINT("sys_mq_open( %p(%s), %d, %lld, %p )",
+ arg1,arg1,arg2,(ULong)arg3,arg4);
+ PRE_REG_READ4(long, "mq_open",
+ const char *, name, int, oflag, vki_mode_t, mode,
+ struct mq_attr *, attr);
PRE_MEM_RASCIIZ( "mq_open(name)", arg1 );
if ((arg2 & VKI_O_CREAT) != 0 && arg4 != 0) {
@@ -6151,5 +6178,5 @@ PRE(mq_open)
}
-POST(mq_open)
+POSTx(sys_mq_open)
{
if (!fd_allowed(res, "mq_open", tid, True)) {
@@ -6162,17 +6189,18 @@ POST(mq_open)
}
-PRE(mq_unlink)
+PREx(sys_mq_unlink, 0)
{
- /* int mq_unlink(const char *name) */
- PRINT("mq_unlink ( %p(%s) )",arg1, arg1);
+ PRINT("sys_mq_unlink ( %p(%s) )", arg1,arg1);
+ PRE_REG_READ1(long, "mq_unlink", const char *, name);
PRE_MEM_RASCIIZ( "mq_unlink(name)", arg1 );
}
-PRE(mq_timedsend)
+PREx(sys_mq_timedsend, MayBlock)
{
- /* int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
- unsigned msg_prio, const struct timespec *abs_timeout); */
- PRINT("mq_timedsend ( %d, %p, %llu, %d, %p )",
+ PRINT("sys_mq_timedsend ( %d, %p, %llu, %d, %p )",
arg1,arg2,(ULong)arg3,arg4,arg5);
+ PRE_REG_READ5(long, "mq_timedsend",
+ vki_mqd_t, mqdes, const char *, msg_ptr, vki_size_t, msg_len,
+ unsigned int, msg_prio, const struct timespec *, abs_timeout);
if (!fd_allowed(arg1, "mq_timedsend", tid, False)) {
set_result( -VKI_EBADF );
@@ -6185,11 +6213,12 @@ PRE(mq_timedsend)
}
-PRE(mq_timedreceive)
+PREx(sys_mq_timedreceive, MayBlock)
{
- /* ssize_t mq_timedreceive(mqd_t mqdes, char *restrict msg_ptr,
- size_t msg_len, unsigned *restrict msg_prio,
- const struct timespec *restrict abs_timeout); */
- PRINT("mq_timedreceive( %d, %p, %llu, %p, %p )",
+ PRINT("sys_mq_timedreceive( %d, %p, %llu, %p, %p )",
arg1,arg2,(ULong)arg3,arg4,arg5);
+ PRE_REG_READ5(ssize_t, "mq_timedreceive",
+ vki_mqd_t, mqdes, char *, msg_ptr, vki_size_t, msg_len,
+ unsigned int *, msg_prio,
+ const struct timespec *, abs_timeout);
if (!fd_allowed(arg1, "mq_timedreceive", tid, False)) {
set_result( -VKI_EBADF );
@@ -6205,5 +6234,5 @@ PRE(mq_timedreceive)
}
-POST(mq_timedreceive)
+POSTx(sys_mq_timedreceive)
{
POST_MEM_WRITE( arg2, arg3 );
@@ -6212,19 +6241,22 @@ POST(mq_timedreceive)
}
-PRE(mq_notify)
+PREx(sys_mq_notify, 0)
{
- /* int mq_notify(mqd_t mqdes, const struct sigevent *notification); */
- PRINT("mq_notify( %d, %p )", arg1,arg2 );
+ PRINT("sys_mq_notify( %d, %p )", arg1,arg2 );
+ PRE_REG_READ2(long, "mq_notify",
+ vki_mqd_t, mqdes, const struct sigevent *, notification);
if (!fd_allowed(arg1, "mq_notify", tid, False))
set_result( -VKI_EBADF );
else if (arg2 != 0)
- PRE_MEM_READ( "mq_notify", arg2, sizeof(struct vki_sigevent) );
+ PRE_MEM_READ( "mq_notify(notification)",
+ arg2, sizeof(struct vki_sigevent) );
}
-PRE(mq_getsetattr)
+PREx(sys_mq_getsetattr, 0)
{
- /* int mq_getsetattr(mqd_t mqdes, const struct mq_attr *restrict mqstat,
- struct mq_attr *restrict omqstat); */
- PRINT("mq_getsetattr( %d, %p, %p )", arg1,arg2,arg3 );
+ PRINT("sys_mq_getsetattr( %d, %p, %p )", arg1,arg2,arg3 );
+ PRE_REG_READ3(long, "mq_getsetattr",
+ vki_mqd_t, mqdes, const struct mq_attr *, mqstat,
+ struct mq_attr *, omqstat);
if (!fd_allowed(arg1, "mq_getsetattr", tid, False)) {
set_result( -VKI_EBADF );
@@ -6241,5 +6273,5 @@ PRE(mq_getsetattr)
}
-POST(mq_getsetattr)
+POSTx(sys_mq_getsetattr)
{
if (arg3 != 0)
@@ -6708,9 +6740,9 @@ static const struct sys_info sys_info[]
SYSB_(__NR_get_thread_area, sys_get_thread_area, Special), // 244
- SYSB_(__NR_io_setup, sys_io_setup, Special), // 245 *
- SYSB_(__NR_io_destroy, sys_io_destroy, Special), // 246 *
- SYSBA(__NR_io_getevents, sys_io_getevents, MayBlock), // 247 *
- SYSB_(__NR_io_submit, sys_io_submit, 0), // 248 *
- SYSBA(__NR_io_cancel, sys_io_cancel, 0), // 249 *
+ SYSX_(__NR_io_setup, sys_io_setup), // 245 * L
+ SYSX_(__NR_io_destroy, sys_io_destroy), // 246 * L
+ SYSXY(__NR_io_getevents, sys_io_getevents), // 247 * L
+ SYSX_(__NR_io_submit, sys_io_submit), // 248 * L
+ SYSXY(__NR_io_cancel, sys_io_cancel), // 249 * L
// (__NR_fadvise64, sys_fadvise64), // 250 * ()
@@ -6745,13 +6777,13 @@ static const struct sys_info sys_info[]
// (__NR_mbind, sys_mbind), // 274 () ()
- // (__NR_get_mempolicy, sys_get_mempolicy), // 275 () ()
- // (__NR_set_mempolicy, sys_set_mempolicy), // 276 () ()
- SYSBA(__NR_mq_open, sys_mq_open, 0), // 277 *
- SYSB_(__NR_mq_unlink, sys_mq_unlink, 0), // (mq_open+1) *
- SYSB_(__NR_mq_timedsend, sys_mq_timedsend, MayBlock), // (mq_open+2) *
+ // (__NR_get_mempolicy, sys_get_mempolicy),// 275 () ()
+ // (__NR_set_mempolicy, sys_set_mempolicy),// 276 () ()
+ SYSXY(__NR_mq_open, sys_mq_open), // 277 * P?
+ SYSX_(__NR_mq_unlink, sys_mq_unlink), // (mq_open+1) * P?
+ SYSX_(__NR_mq_timedsend, sys_mq_timedsend), // (mq_open+2) * P?
- SYSBA(__NR_mq_timedreceive, sys_mq_timedreceive, MayBlock), // (mq_open+3) *
- SYSB_(__NR_mq_notify, sys_mq_notify, 0), // (mq_open+4) *
- SYSBA(__NR_mq_getsetattr, sys_mq_getsetarr, 0), // (mq_open+5) *
+ SYSXY(__NR_mq_timedreceive, sys_mq_timedreceive), // (mq_open+3) * P?
+ SYSX_(__NR_mq_notify, sys_mq_notify), // (mq_open+4) * P?
+ SYSXY(__NR_mq_getsetattr, sys_mq_getsetattr), // (mq_open+5) * P?
SYSX_(__NR_sys_kexec_load, sys_ni_syscall), // 283 * P
};
--- valgrind/include/linux/vki.h #1.8:1.9
@@ -101,4 +101,5 @@ typedef struct {
typedef int __vki_kernel_key_t;
+typedef int __vki_kernel_mqd_t;
//----------------------------------------------------------------------
@@ -113,4 +114,5 @@ typedef __vki_kernel_key_t vki_key_t;
typedef __vki_kernel_suseconds_t vki_suseconds_t;
typedef __vki_kernel_timer_t vki_timer_t;
+typedef __vki_kernel_mqd_t vki_mqd_t;
// [[Nb: it's a bit unclear due to a #ifdef, but I think this is right. --njn]]
--- valgrind/memcheck/tests/scalar.c #1.45:1.46
@@ -2,4 +2,17 @@
#include "scalar.h"
+// Here we are trying to trigger every syscall error (scalar errors and
+// memory errors) for every syscall. We do this by passing a lot of bogus
+// arguments, mostly 0 and 1 (often it's 1 because NULL ptr args often aren't
+// checked for memory errors, or in order to have a non-zero length used
+// with some buffer). So most of the syscalls don't actually succeed and do
+// anything.
+//
+// Occasionally we have to be careful not to cause Valgrind to seg fault in
+// its pre-syscall wrappers; it does so because it can't know in general
+// when memory is unaddressable, and so tries to dereference it when doing
+// PRE_MEM_READ/PRE_MEM_WRITE calls. (Note that Memcheck and Addrcheck will
+// always issue an error message immediately before these seg faults occur).
+
int main(void)
{
@@ -1025,22 +1038,32 @@ int main(void)
// __NR_io_setup 245
- //GO(__NR_io_setup, ".s .m");
- //SY(__NR_io_setup);
+ GO(__NR_io_setup, "2s 1m");
+ SY(__NR_io_setup, x0, x0);
// __NR_io_destroy 246
- //GO(__NR_io_destroy, ".s .m");
- //SY(__NR_io_destroy);
+ {
+ // jump through hoops to prevent the PRE(io_destroy) wrapper crashing.
+ struct fake_aio_ring {
+ unsigned id; /* kernel internal index number */
+ unsigned nr; /* number of io_events */
+ // There are more fields in the real aio_ring, but the 'nr' field is
+ // the only one used by the PRE() wrapper.
+ } ring = { 0, 0 };
+ struct fake_aio_ring* ringptr = ˚
+ GO(__NR_io_destroy, "1s 0m");
+ SY(__NR_io_destroy, x0+&ringptr);
+ }
// __NR_io_getevents 247
- //GO(__NR_io_getevents, ".s .m");
- //SY(__NR_io_getevents);
+ GO(__NR_io_getevents, "5s 2m");
+ SY(__NR_io_getevents, x0, x0, x0+1, x0, x0+1);
// __NR_io_submit 248
- //GO(__NR_io_submit, ".s .m");
- //SY(__NR_io_submit);
+ GO(__NR_io_submit, "3s 1m");
+ SY(__NR_io_submit, x0, x0+1, x0);
// __NR_io_cancel 249
- //GO(__NR_io_cancel, ".s .m");
- //SY(__NR_io_cancel);
+ GO(__NR_io_cancel, "3s 2m");
+ SY(__NR_io_cancel, x0, x0, x0);
// __NR_fadvise64 250
@@ -1153,26 +1176,26 @@ int main(void)
// __NR_mq_open 277
- //GO(__NR_mq_open, ".s .m");
- //SY(__NR_mq_open);
+ GO(__NR_mq_open, "4s 2m");
+ SY(__NR_mq_open, x0, x0+O_CREAT, x0, x0+1);
// __NR_mq_unlink (__NR_mq_open+1)
- //GO(__NR_mq_unlink, ".s .m");
- //SY(__NR_mq_unlink);
+ GO(__NR_mq_unlink, "1s 1m");
+ SY(__NR_mq_unlink, x0);
// __NR_mq_timedsend (__NR_mq_open+2)
- //GO(__NR_mq_timedsend, ".s .m");
- //SY(__NR_mq_timedsend);
+ GO(__NR_mq_timedsend, "5s 2m");
+ SY(__NR_mq_timedsend, x0, x0, x0+1, x0, x0+1);
// __NR_mq_timedreceive (__NR_mq_open+3)
- //GO(__NR_mq_timedreceive, ".s .m");
- //SY(__NR_mq_timedreceive);
+ GO(__NR_mq_timedreceive, "5s 3m");
+ SY(__NR_mq_timedreceive, x0, x0, x0+1, x0+1, x0+1);
// __NR_mq_notify (__NR_mq_open+4)
- //GO(__NR_mq_notify, ".s .m");
- //SY(__NR_mq_notify);
+ GO(__NR_mq_notify, "2s 1m");
+ SY(__NR_mq_notify, x0, x0+1);
// __NR_mq_getsetattr (__NR_mq_open+5)
- //GO(__NR_mq_getsetattr, ".s .m");
- //SY(__NR_mq_getsetattr);
+ GO(__NR_mq_getsetattr, "3s 2m");
+ SY(__NR_mq_getsetattr, x0, x0+1, x0+1);
// __NR_sys_kexec_load 283
--- valgrind/memcheck/tests/scalar.stderr.exp #1.37:1.38
@@ -1629,5 +1629,5 @@
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:7)
+ by 0x........: main (scalar.c:20)
Syscall param sigprocmask(oldset) points to unaddressable byte(s)
@@ -1637,5 +1637,5 @@
Address 0x........ is 0 bytes after a block of size 4 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: main (scalar.c:7)
+ by 0x........: main (scalar.c:20)
-----------------------------------------------------
127: __NR_create_module ni
@@ -3679,4 +3679,125 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+245: __NR_io_setup 2s 1m
+-----------------------------------------------------
+
+Syscall param io_setup(nr_events) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_setup(ctxp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_setup(ctxp) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+246: __NR_io_destroy 1s 0m
+-----------------------------------------------------
+
+Syscall param io_destroy(ctx) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+247: __NR_io_getevents 5s 2m
+-----------------------------------------------------
+
+Syscall param io_getevents(ctx_id) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_getevents(min_nr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_getevents(nr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_getevents(events) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_getevents(timeout) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_getevents(events) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param io_getevents(timeout) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+248: __NR_io_submit 3s 1m
+-----------------------------------------------------
+
+Syscall param io_submit(ctx_id) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_submit(nr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_submit(iocbpp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_submit(iocbpp) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+249: __NR_io_cancel 3s 2m
+-----------------------------------------------------
+
+Syscall param io_cancel(ctx_id) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_cancel(iocb) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_cancel(result) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param io_cancel(iocb) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param io_cancel(result) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
250: __NR_fadvise64 n/a
-----------------------------------------------------
@@ -3891,4 +4012,194 @@
-----------------------------------------------------
-----------------------------------------------------
+277: __NR_mq_open 4s 2m
+-----------------------------------------------------
+
+Syscall param mq_open(name) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_open(oflag) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_open(mode) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_open(attr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_open(name) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param mq_open(attr->mq_maxmsg) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param mq_open(attr->mq_msgsize) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+278: __NR_mq_unlink 1s 1m
+-----------------------------------------------------
+
+Syscall param mq_unlink(name) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_unlink(name) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+279: __NR_mq_timedsend 5s 2m
+-----------------------------------------------------
+
+Syscall param mq_timedsend(mqdes) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedsend(msg_ptr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedsend(msg_len) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedsend(msg_prio) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedsend(abs_timeout) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedsend(msg_ptr) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param mq_timedsend(abs_timeout) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+280:__NR_mq_timedreceive 5s 3m
+-----------------------------------------------------
+
+Syscall param mq_timedreceive(mqdes) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedreceive(msg_ptr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedreceive(msg_len) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedreceive(msg_prio) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedreceive(abs_timeout) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_timedreceive(msg_ptr) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param mq_timedreceive(msg_prio) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param mq_timedreceive(abs_timeout) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+281: __NR_mq_notify 2s 1m
+-----------------------------------------------------
+
+Syscall param mq_notify(mqdes) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_notify(notification) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_notify(notification) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
+282: __NR_mq_getsetattr 3s 2m
+-----------------------------------------------------
+
+Syscall param mq_getsetattr(mqdes) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_getsetattr(mqstat) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_getsetattr(omqstat) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mq_getsetattr(mqstat->mq_flags) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+
+Syscall param mq_getsetattr(omqstat) points to unaddressable byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is not stack'd, malloc'd or (recently) free'd
+-----------------------------------------------------
283: __NR_sys_kexec_load ni
-----------------------------------------------------
|
|
From: Tom H. <th...@cy...> - 2004-11-16 12:09:56
|
CVS commit by thughes:
Use sigprocmask(SIG_SETMASK) to make sure the signal mask is in a
known state before performing the test. This is done because perl on
some systems leaves some signals blocked when starting child
processes which can cause this test to fail.
M +6 -0 sigprocmask.c 1.2
--- valgrind/memcheck/tests/sigprocmask.c #1.1:1.2
@@ -22,4 +22,10 @@ int main(void)
os = &x[4];
+ // Make sure the system is in a known state with no signals
+ // blocked as perl has been known to leave some signals blocked
+ // when starting child processes which can cause failures in
+ // this test unless we reset things here.
+ syscall(__NR_sigprocmask, SIG_SETMASK, os, NULL);
+
fprintf(stderr, "before\n");
for (i = 0; i < 6; i++) {
|
|
From: Tom H. <th...@cy...> - 2004-11-16 12:08:49
|
CVS commit by thughes:
Don't try and return the old mask from sigprocmask if the user gave
a null pointer for that argument.
M +2 -1 vg_syscalls.c 1.214
--- valgrind/coregrind/vg_syscalls.c #1.213:1.214
@@ -5945,4 +5945,5 @@ PREx(sys_sigprocmask, SIG_SIM)
&bigger_oldset );
+ if (oldset)
*oldset = bigger_oldset.sig[0];
}
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-16 10:02:12
|
On Tue, 16 Nov 2004, Paul Mackerras wrote: > Nicholas Nethercote writes: > >> Converted more syscalls, including futex() which I'm not too sure about. > > What aren't you sure about? Whether the wrapper is doing the right thing. In particular, whether the PRE_REG_READ and PRE_MEM_READ/PRE_MEM_WRITE calls are right. It seems futex() works in a couple of different ways depending on the 2nd 'op' arg, and I think the wrapper might be too simplistic, ie. get some cases wrong. The overloading of the 4th 'utime' param (as implied by the wrapper) looks very strange. The situation is complicated by the fact that the prototype given in the man page doesn't match that present in the kernel source code. N |
|
From: Tom H. <th...@cy...> - 2004-11-16 08:27:29
|
CVS commit by thughes:
Add arguments to the prctl call in the scalar test.
M +1 -1 scalar.c 1.45
--- valgrind/memcheck/tests/scalar.c #1.44:1.45
@@ -730,5 +730,5 @@ int main(void)
// __NR_prctl 172
GO(__NR_prctl, "5s 0m");
- SY(__NR_prctl);
+ SY(__NR_prctl, x0, x0, x0, x0, x0);
// __NR_rt_sigreturn 173
|
|
From: <js...@ac...> - 2004-11-16 03:57:03
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2004-11-16 03:50:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_mmx: valgrind ./insn_mmx insn_mmxext: (cpu_test failed, skipping) insn_sse: valgrind ./insn_sse insn_sse2: (cpu_test failed, skipping) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 185 tests, 5 stderr failures, 0 stdout failures ================= corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_fcntl (stderr) memcheck/tests/sigprocmask (stderr) memcheck/tests/writev (stderr) memcheck/tests/zeropage (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <to...@co...> - 2004-11-16 03:26:00
|
Nightly build on dunsmere ( Fedora Core 3 ) started at 2004-11-16 03:20:08 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow -- Finished tests in none/tests ---------------------------------------- == 190 tests, 14 stderr failures, 1 stdout failure ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/badjump (stderr) memcheck/tests/badjump2 (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/writev (stderr) none/tests/exec-sigmask (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-11-16 03:20:43
|
Nightly build on audi ( Red Hat 9 ) started at 2004-11-16 03:15:04 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 190 tests, 12 stderr failures, 0 stdout failures ================= corecheck/tests/fdleak_cmsg (stderr) corecheck/tests/fdleak_fcntl (stderr) corecheck/tests/fdleak_ipv4 (stderr) corecheck/tests/fdleak_socketpair (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/writev (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-11-16 03:14:00
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2004-11-16 03:10:02 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow fpu_lazy_eflags: valgrind ./fpu_lazy_eflags insn_basic: valgrind ./insn_basic insn_cmov: valgrind ./insn_cmov insn_fpu: valgrind ./insn_fpu insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse insn_sse2: (cpu_test failed, skipping) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 190 tests, 1 stderr failure, 0 stdout failures ================= memcheck/tests/sigprocmask (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-11-16 03:08:34
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2004-11-16 03:05:02 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_basic: valgrind ./insn_basic insn_cmov: valgrind ./insn_cmov insn_fpu: valgrind ./insn_fpu insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse insn_sse2: (cpu_test failed, skipping) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 190 tests, 2 stderr failures, 0 stdout failures ================= memcheck/tests/scalar (stderr) memcheck/tests/vgtest_ume (stderr) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2004-11-16 03:04:12
|
Nightly build on standard ( Red Hat 7.2 ) started at 2004-11-16 03:00:02 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow insn_basic: valgrind ./insn_basic insn_cmov: valgrind ./insn_cmov insn_fpu: valgrind ./insn_fpu insn_mmx: valgrind ./insn_mmx insn_mmxext: valgrind ./insn_mmxext insn_sse: valgrind ./insn_sse insn_sse2: (cpu_test failed, skipping) int: valgrind ./int pushpopseg: valgrind ./pushpopseg rcl_assert: valgrind ./rcl_assert seg_override: valgrind ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind ./yield -- Finished tests in none/tests ---------------------------------------- == 190 tests, 2 stderr failures, 0 stdout failures ================= memcheck/tests/scalar (stderr) memcheck/tests/vgtest_ume (stderr) make: *** [regtest] Error 1 |