[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: valgrind [POSSIBLY UNSAFE]
From: Nicholas Nethercote <njn25 () cam ! ac ! uk>
Date: 2004-11-16 16:15:41
Message-ID: 20041116161541.C590516D22 () office ! kde ! org
[Download RAW message or body]
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)
{
+ int res;
+
// All __NR_xxx numbers are taken from x86
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic