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-12 23:16:34
|
CVS commit by thughes:
Try and improve the parsing of C++ stabs that contain :: sequences. This
patch attempts to follow the same rules that gdb uses and is based on the
fact that there appear to be three places where :: can appear:
- In the name of a undefined struct/union/enum after an x type
marker. In this case we follow a simplified version of the old
rules and only allow :: inside <> characters.
- In a method name. These are mangled so :: will never appear as
part of the name but will always occurs as the terminator. We
handle this by stopping at the first :: sequence.
- In a symbol/type name. This can include :: but can only be ended
by a single colon so we simply carry on until we see that.
I suspect this will resolve a number of bugs but I'm still waiting for
the submitters to confirm exactly which ones it resolves.
M +5 -32 vg_stabs.c 1.21
--- valgrind/coregrind/vg_stabs.c #1.20:1.21
@@ -414,22 +414,4 @@ static UInt atou(Char **pp, Int base)
}
-static Bool isoperator(Char op)
-{
- switch(op) {
- case 'a'...'z':
- case 'A'...'Z':
- case '0'...'9':
- case '_':
- case ':':
- case '\'':
- case '"':
- case '$':
- return False;
-
- default:
- return True;
- }
-}
-
/* Skip a ':'-delimited name which may have ::, 'char' or other things in
<> brackets */
@@ -438,16 +420,4 @@ static Char *templ_name(Char *p)
Int brac = 0;
- /* Special case: if the name is "operatorX", where X is not an
- otherwise valid operator name, then just skip to the terminating
- ':' and ignore the '<>' bracketing stuff. That's because names
- like "operator<" and "operator<=" can appear here, and it can be
- terminated by ::. */
- if (VG_(strncmp)(p, "operator", 8) == 0 && isoperator(p[8])) {
- p += 8;
- while(*p != ':')
- p++;
- return p;
- }
-
for(;;) {
if (*p == '<')
@@ -880,5 +850,6 @@ static SymType *stabtype_parser(SegInfo
SymType *fieldty;
- end = templ_name(p);
+ // end = templ_name(p);
+ end = SKIPPAST(p, ':', "method name") - 1;
if (end[1] == ':') {
@@ -1061,5 +1032,7 @@ static Bool initSym(SegInfo *si, Sym *sy
si, si->stab_typetab, sym, kind, name, name, val);
- ty = templ_name(name);
+ // ty = templ_name(name);
+ ty = VG_(strchr)(name, ':');
+ while (ty && ty[1] == ':') ty = VG_(strchr)(ty + 2, ':');
len = ty - name;
|
|
From: Tom H. <th...@cy...> - 2004-11-12 23:11:30
|
CVS commit by thughes:
Change VG_(nuke_all_threads) to disassociate the the stacks of the threads
being killed from the threads rather than marking them as inaccessible.
This should fix the problem with the environment (and other data from the
stacks of other threads) causing warnings after a fork. I believe that
VG_(nuke_all_threads) is only called in places where this is the behaviour
that we want or where it doesn't matter because we're about to exit anyway.
I believe this fixes bug 85625 but I'm still waiting for confirmation.
M +7 -2 vg_scheduler.c 1.199
--- valgrind/coregrind/vg_scheduler.c #1.198:1.199
@@ -1293,7 +1293,10 @@ void cleanup_after_thread_exited ( Threa
vg_assert(is_valid_or_empty_tid(tid));
vg_assert(VG_(threads)[tid].status == VgTs_Empty);
+
/* Its stack is now off-limits */
+ if (VG_(threads)[tid].stack_base) {
seg = VG_(find_segment)( VG_(threads)[tid].stack_base );
VG_TRACK( die_mem_stack, seg->addr, seg->len );
+ }
VGA_(cleanup_thread)( &VG_(threads)[tid].arch );
@@ -1389,4 +1392,6 @@ void VG_(nuke_all_threads_except) ( Thre
VG_(threads)[tid].associated_mx = NULL;
VG_(threads)[tid].associated_cv = NULL;
+ VG_(threads)[tid].stack_base = NULL;
+ VG_(threads)[tid].stack_size = 0;
cleanup_after_thread_exited( tid, True );
}
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 21:21:14
|
CVS commit by nethercote:
convert some more, mash some more
M +44 -28 coregrind/vg_syscalls.c 1.189
M +181 -181 memcheck/tests/scalar.c 1.20
M +38 -0 memcheck/tests/scalar.stderr.exp 1.17
--- valgrind/coregrind/vg_syscalls.c #1.188:1.189
@@ -667,5 +667,5 @@ void do_hacky_preopened()
int i;
- if(VG_(getrlimit) (VKI_RLIMIT_NOFILE, &lim) == -1) {
+ if (VG_(getrlimit) (VKI_RLIMIT_NOFILE, &lim) == -1) {
/* Hmm. getrlimit() failed. Now we're screwed, so just choose
an arbitrarily high number. 1024 happens to be the limit in
@@ -2413,33 +2413,49 @@ POST(getresuid32)
}
-PRE(getrlimit)
-{
- /* int getrlimit (int resource, struct rlimit *rlim); */
- PRINT("getrlimit ( %d, %p )", arg1,arg2);
- PRE_MEM_WRITE( "getrlimit(rlim)", arg2, sizeof(struct vki_rlimit) );
-}
-
-POST(getrlimit)
+static void common_post_getrlimit(UWord a1, UWord a2)
{
- POST_MEM_WRITE( arg2, sizeof(struct vki_rlimit) );
+ POST_MEM_WRITE( a2, sizeof(struct vki_rlimit) );
- switch(arg1) {
+ switch (a1) {
case VKI_RLIMIT_NOFILE:
- ((struct vki_rlimit *)arg2)->rlim_cur = VG_(fd_soft_limit);
- ((struct vki_rlimit *)arg2)->rlim_max = VG_(fd_hard_limit);
+ ((struct vki_rlimit *)a2)->rlim_cur = VG_(fd_soft_limit);
+ ((struct vki_rlimit *)a2)->rlim_max = VG_(fd_hard_limit);
break;
case VKI_RLIMIT_DATA:
- *((struct vki_rlimit *)arg2) = VG_(client_rlimit_data);
+ *((struct vki_rlimit *)a2) = VG_(client_rlimit_data);
break;
case VKI_RLIMIT_STACK:
- *((struct vki_rlimit *)arg2) = VG_(client_rlimit_stack);
+ *((struct vki_rlimit *)a2) = VG_(client_rlimit_stack);
break;
}
}
-PREALIAS(ugetrlimit, getrlimit);
-POSTALIAS(ugetrlimit, getrlimit);
+PREx(sys_old_getrlimit, 0)
+{
+ PRINT("sys_old_getrlimit ( %d, %p )", arg1,arg2);
+ PRE_REG_READ2(long, "old_getrlimit",
+ unsigned int, resource, struct rlimit *, rlim);
+ PRE_MEM_WRITE( "old_getrlimit(rlim)", arg2, sizeof(struct vki_rlimit) );
+}
+
+POSTx(sys_old_getrlimit)
+{
+ common_post_getrlimit(arg1, arg2);
+}
+
+PREx(sys_getrlimit, 0)
+{
+ PRINT("sys_getrlimit ( %d, %p )", arg1,arg2);
+ PRE_REG_READ2(long, "getrlimit",
+ unsigned int, resource, struct rlimit *, rlim);
+ PRE_MEM_WRITE( "getrlimit(rlim)", arg2, sizeof(struct vki_rlimit) );
+}
+
+POSTx(sys_getrlimit)
+{
+ common_post_getrlimit(arg1, arg2);
+}
PRE(getrusage)
@@ -5924,6 +5940,6 @@ static const struct sys_info sys_info[]
SYSX_(__NR_setrlimit, sys_setrlimit), // 75 * (SVr4,BSD4.3)
- SYSBA(__NR_getrlimit, sys_old_getrlimit, 0), // 76 *
- SYSBA(__NR_getrusage, sys_getrusage, 0), // 77 sys_getrusage *
+ SYSXY(__NR_getrlimit, sys_old_getrlimit), // 76 * (SVr4,BSD4.3)
+ SYSBA(__NR_getrusage, sys_getrusage, 0), // 77 *
SYSBA(__NR_gettimeofday, sys_gettimeofday, 0), // 78 *
SYSB_(__NR_settimeofday, sys_settimeofday, 0), // 79 *
@@ -5980,5 +5996,5 @@ static const struct sys_info sys_info[]
// (__NR_setdomainname, sys_setdomainname),// 121 * (non-P?)
SYSXY(__NR_uname, sys_newuname), // 122 * P
- SYSB_(__NR_modify_ldt, sys_modify_ldt, Special), // 123 sys_modify_ldt (x86,amd64) L
+ SYSB_(__NR_modify_ldt, sys_modify_ldt, Special), // 123 (x86,amd64) L
SYSBA(__NR_adjtimex, sys_adjtimex, 0), // 124 *
@@ -6065,5 +6081,5 @@ static const struct sys_info sys_info[]
// Nb: we convert vfork() to fork() in VG_(pre_syscall)().
// (__NR_vfork, sys_vfork), // 190 -- Valgrind avoids
- SYSBA(__NR_ugetrlimit, sys_getrlimit, 0), // 191 *
+ SYSXY(__NR_ugetrlimit, sys_getrlimit), // 191 * (?)
SYSBA(__NR_mmap2, sys_mmap2, 0), // 192
SYSB_(__NR_truncate64, sys_truncate64, MayBlock), // 193 %%
--- valgrind/memcheck/tests/scalar.c #1.19:1.20
@@ -305,33 +305,33 @@ int main(void)
// __NR_getrlimit 76
- //GO(__NR_getrlimit, ".m .s");
- //SY(__NR_getrlimit);
+ GO(__NR_getrlimit, "2s 1m");
+ SY(__NR_getrlimit, x0, x0);
// __NR_getrusage 77
- //GO(__NR_getrusage, ".m .s");
+ //GO(__NR_getrusage, ".s .m");
//SY(__NR_getrusage);
// __NR_gettimeofday 78
- //GO(__NR_gettimeofday, ".m .s");
+ //GO(__NR_gettimeofday, ".s .m");
//SY(__NR_gettimeofday);
// __NR_settimeofday 79
- //GO(__NR_settimeofday, ".m .s");
+ //GO(__NR_settimeofday, ".s .m");
//SY(__NR_settimeofday);
// __NR_getgroups 80
- //GO(__NR_getgroups, ".m .s");
+ //GO(__NR_getgroups, ".s .m");
//SY(__NR_getgroups);
// __NR_setgroups 81
- //GO(__NR_setgroups, ".m .s");
+ //GO(__NR_setgroups, ".s .m");
//SY(__NR_setgroups);
// __NR_select 82
- //GO(__NR_select, ".m .s");
+ //GO(__NR_select, ".s .m");
//SY(__NR_select);
// __NR_symlink 83
- //GO(__NR_symlink, ".m .s");
+ //GO(__NR_symlink, ".s .m");
//SY(__NR_symlink);
@@ -340,5 +340,5 @@ int main(void)
// __NR_readlink 85
- //GO(__NR_readlink, ".m .s");
+ //GO(__NR_readlink, ".s .m");
//SY(__NR_readlink);
@@ -356,77 +356,77 @@ int main(void)
// __NR_mmap 90
- //GO(__NR_mmap, ".m .s");
+ //GO(__NR_mmap, ".s .m");
//SY(__NR_mmap);
// __NR_munmap 91
- //GO(__NR_munmap, ".m .s");
+ //GO(__NR_munmap, ".s .m");
//SY(__NR_munmap);
// __NR_truncate 92
- //GO(__NR_truncate, ".m .s");
+ //GO(__NR_truncate, ".s .m");
//SY(__NR_truncate);
// __NR_ftruncate 93
- //GO(__NR_ftruncate, ".m .s");
+ //GO(__NR_ftruncate, ".s .m");
//SY(__NR_ftruncate);
// __NR_fchmod 94
- //GO(__NR_fchmod, ".m .s");
+ //GO(__NR_fchmod, ".s .m");
//SY(__NR_fchmod);
// __NR_fchown 95
- //GO(__NR_fchown, ".m .s");
+ //GO(__NR_fchown, ".s .m");
//SY(__NR_fchown);
// __NR_getpriority 96
- //GO(__NR_getpriority, ".m .s");
+ //GO(__NR_getpriority, ".s .m");
//SY(__NR_getpriority);
// __NR_setpriority 97
- //GO(__NR_setpriority, ".m .s");
+ //GO(__NR_setpriority, ".s .m");
//SY(__NR_setpriority);
// __NR_profil 98
- //GO(__NR_profil, ".m .s");
+ //GO(__NR_profil, ".s .m");
//SY(__NR_profil);
// __NR_statfs 99
- //GO(__NR_statfs, ".m .s");
+ //GO(__NR_statfs, ".s .m");
//SY(__NR_statfs);
// __NR_fstatfs 100
- //GO(__NR_fstatfs, ".m .s");
+ //GO(__NR_fstatfs, ".s .m");
//SY(__NR_fstatfs);
// __NR_ioperm 101
- //GO(__NR_ioperm, ".m .s");
+ //GO(__NR_ioperm, ".s .m");
//SY(__NR_ioperm);
// __NR_socketcall 102
- //GO(__NR_socketcall, ".m .s");
+ //GO(__NR_socketcall, ".s .m");
//SY(__NR_socketcall);
// __NR_syslog 103
- //GO(__NR_syslog, ".m .s");
+ //GO(__NR_syslog, ".s .m");
//SY(__NR_syslog);
// __NR_setitimer 104
- //GO(__NR_setitimer, ".m .s");
+ //GO(__NR_setitimer, ".s .m");
//SY(__NR_setitimer);
// __NR_getitimer 105
- //GO(__NR_getitimer, ".m .s");
+ //GO(__NR_getitimer, ".s .m");
//SY(__NR_getitimer);
// __NR_stat 106
- //GO(__NR_stat, ".m .s");
+ //GO(__NR_stat, ".s .m");
//SY(__NR_stat);
// __NR_lstat 107
- //GO(__NR_lstat, ".m .s");
+ //GO(__NR_lstat, ".s .m");
//SY(__NR_lstat);
// __NR_fstat 108
- //GO(__NR_fstat, ".m .s");
+ //GO(__NR_fstat, ".s .m");
//SY(__NR_fstat);
@@ -435,5 +435,5 @@ int main(void)
// __NR_iopl 110
- //GO(__NR_iopl, ".m .s");
+ //GO(__NR_iopl, ".s .m");
//SY(__NR_iopl);
@@ -447,37 +447,37 @@ int main(void)
// __NR_vm86old 113
- //GO(__NR_vm86old, ".m .s");
+ //GO(__NR_vm86old, ".s .m");
//SY(__NR_vm86old);
// __NR_wait4 114
- //GO(__NR_wait4, ".m .s");
+ //GO(__NR_wait4, ".s .m");
//SY(__NR_wait4);
// __NR_swapoff 115
- //GO(__NR_swapoff, ".m .s");
+ //GO(__NR_swapoff, ".s .m");
//SY(__NR_swapoff);
// __NR_sysinfo 116
- //GO(__NR_sysinfo, ".m .s");
+ //GO(__NR_sysinfo, ".s .m");
//SY(__NR_sysinfo);
// __NR_ipc 117
- //GO(__NR_ipc, ".m .s");
+ //GO(__NR_ipc, ".s .m");
//SY(__NR_ipc);
// __NR_fsync 118
- //GO(__NR_fsync, ".m .s");
+ //GO(__NR_fsync, ".s .m");
//SY(__NR_fsync);
// __NR_sigreturn 119
- //GO(__NR_sigreturn, ".m .s");
+ //GO(__NR_sigreturn, ".s .m");
//SY(__NR_sigreturn);
// __NR_clone 120
- //GO(__NR_clone, ".m .s");
+ //GO(__NR_clone, ".s .m");
//SY(__NR_clone);
// __NR_setdomainname 121
- //GO(__NR_setdomainname, ".m .s");
+ //GO(__NR_setdomainname, ".s .m");
//SY(__NR_setdomainname);
@@ -487,17 +487,17 @@ int main(void)
// __NR_modify_ldt 123
- //GO(__NR_modify_ldt, ".m .s");
+ //GO(__NR_modify_ldt, ".s .m");
//SY(__NR_modify_ldt);
// __NR_adjtimex 124
- //GO(__NR_adjtimex, ".m .s");
+ //GO(__NR_adjtimex, ".s .m");
//SY(__NR_adjtimex);
// __NR_mprotect 125
- //GO(__NR_mprotect, ".m .s");
+ //GO(__NR_mprotect, ".s .m");
//SY(__NR_mprotect);
// __NR_sigprocmask 126
- //GO(__NR_sigprocmask, ".m .s");
+ //GO(__NR_sigprocmask, ".s .m");
//SY(__NR_sigprocmask);
@@ -507,9 +507,9 @@ int main(void)
// __NR_init_module 128
- //GO(__NR_init_module, ".m .s");
+ //GO(__NR_init_module, ".s .m");
//SY(__NR_init_module);
// __NR_delete_module 129
- //GO(__NR_delete_module, ".m .s");
+ //GO(__NR_delete_module, ".s .m");
//SY(__NR_delete_module);
@@ -519,25 +519,25 @@ int main(void)
// __NR_quotactl 131
- //GO(__NR_quotactl, ".m .s");
+ //GO(__NR_quotactl, ".s .m");
//SY(__NR_quotactl);
// __NR_getpgid 132
- //GO(__NR_getpgid, ".m .s");
+ //GO(__NR_getpgid, ".s .m");
//SY(__NR_getpgid);
// __NR_fchdir 133
- //GO(__NR_fchdir, ".m .s");
+ //GO(__NR_fchdir, ".s .m");
//SY(__NR_fchdir);
// __NR_bdflush 134
- //GO(__NR_bdflush, ".m .s");
+ //GO(__NR_bdflush, ".s .m");
//SY(__NR_bdflush);
// __NR_sysfs 135
- //GO(__NR_sysfs, ".m .s");
+ //GO(__NR_sysfs, ".s .m");
//SY(__NR_sysfs);
// __NR_personality 136
- //GO(__NR_personality, ".m .s");
+ //GO(__NR_personality, ".s .m");
//SY(__NR_personality);
@@ -547,61 +547,61 @@ int main(void)
// __NR_setfsuid 138
- //GO(__NR_setfsuid, ".m .s");
+ //GO(__NR_setfsuid, ".s .m");
//SY(__NR_setfsuid);
// __NR_setfsgid 139
- //GO(__NR_setfsgid, ".m .s");
+ //GO(__NR_setfsgid, ".s .m");
//SY(__NR_setfsgid);
// __NR__llseek 140
- //GO(__NR__llseek, ".m .s");
+ //GO(__NR__llseek, ".s .m");
//SY(__NR__llseek);
// __NR_getdents 141
- //GO(__NR_getdents, ".m .s");
+ //GO(__NR_getdents, ".s .m");
//SY(__NR_getdents);
// __NR__newselect 142
- //GO(__NR__newselect, ".m .s");
+ //GO(__NR__newselect, ".s .m");
//SY(__NR__newselect);
// __NR_flock 143
- //GO(__NR_flock, ".m .s");
+ //GO(__NR_flock, ".s .m");
//SY(__NR_flock);
// __NR_msync 144
- //GO(__NR_msync, ".m .s");
+ //GO(__NR_msync, ".s .m");
//SY(__NR_msync);
// __NR_readv 145
- //GO(__NR_readv, ".m .s");
+ //GO(__NR_readv, ".s .m");
//SY(__NR_readv);
// __NR_writev 146
- //GO(__NR_writev, ".m .s");
+ //GO(__NR_writev, ".s .m");
//SY(__NR_writev);
// __NR_getsid 147
- //GO(__NR_getsid, ".m .s");
+ //GO(__NR_getsid, ".s .m");
//SY(__NR_getsid);
// __NR_fdatasync 148
- //GO(__NR_fdatasync, ".m .s");
+ //GO(__NR_fdatasync, ".s .m");
//SY(__NR_fdatasync);
// __NR__sysctl 149
- //GO(__NR__sysctl, ".m .s");
+ //GO(__NR__sysctl, ".s .m");
//SY(__NR__sysctl);
// __NR_mlock 150
- //GO(__NR_mlock, ".m .s");
+ //GO(__NR_mlock, ".s .m");
//SY(__NR_mlock);
// __NR_munlock 151
- //GO(__NR_munlock, ".m .s");
+ //GO(__NR_munlock, ".s .m");
//SY(__NR_munlock);
// __NR_mlockall 152
- //GO(__NR_mlockall, ".m .s");
+ //GO(__NR_mlockall, ".s .m");
//SY(__NR_mlockall);
@@ -611,53 +611,53 @@ int main(void)
// __NR_sched_setparam 154
- //GO(__NR_sched_setparam, ".m .s");
+ //GO(__NR_sched_setparam, ".s .m");
//SY(__NR_sched_setparam);
// __NR_sched_getparam 155
- //GO(__NR_sched_getparam, ".m .s");
+ //GO(__NR_sched_getparam, ".s .m");
//SY(__NR_sched_getparam);
// __NR_sched_setscheduler 156
- //GO(__NR_sched_setscheduler, ".m .s");
+ //GO(__NR_sched_setscheduler, ".s .m");
//SY(__NR_sched_setscheduler);
// __NR_sched_getscheduler 157
- //GO(__NR_sched_getscheduler, ".m .s");
+ //GO(__NR_sched_getscheduler, ".s .m");
//SY(__NR_sched_getscheduler);
// __NR_sched_yield 158
- //GO(__NR_sched_yield, ".m .s");
+ //GO(__NR_sched_yield, ".s .m");
//SY(__NR_sched_yield);
// __NR_sched_get_priority_max 159
- //GO(__NR_sched_get_priority_max, ".m .s");
+ //GO(__NR_sched_get_priority_max, ".s .m");
//SY(__NR_sched_get_priority_max);
// __NR_sched_get_priority_min 160
- //GO(__NR_sched_get_priority_min, ".m .s");
+ //GO(__NR_sched_get_priority_min, ".s .m");
//SY(__NR_sched_get_priority_min);
// __NR_sched_rr_get_interval 161
- //GO(__NR_sched_rr_get_interval, ".m .s");
+ //GO(__NR_sched_rr_get_interval, ".s .m");
//SY(__NR_sched_rr_get_interval);
// __NR_nanosleep 162
- //GO(__NR_nanosleep, ".m .s");
+ //GO(__NR_nanosleep, ".s .m");
//SY(__NR_nanosleep);
// __NR_mremap 163
- //GO(__NR_mremap, ".m .s");
+ //GO(__NR_mremap, ".s .m");
//SY(__NR_mremap);
// __NR_setresuid 164
- //GO(__NR_setresuid, ".m .s");
+ //GO(__NR_setresuid, ".s .m");
//SY(__NR_setresuid);
// __NR_getresuid 165
- //GO(__NR_getresuid, ".m .s");
+ //GO(__NR_getresuid, ".s .m");
//SY(__NR_getresuid);
// __NR_vm86 166
- //GO(__NR_vm86, ".m .s");
+ //GO(__NR_vm86, ".s .m");
//SY(__NR_vm86);
@@ -667,125 +667,125 @@ int main(void)
// __NR_poll 168
- //GO(__NR_poll, ".m .s");
+ //GO(__NR_poll, ".s .m");
//SY(__NR_poll);
// __NR_nfsservctl 169
- //GO(__NR_nfsservctl, ".m .s");
+ //GO(__NR_nfsservctl, ".s .m");
//SY(__NR_nfsservctl);
// __NR_setresgid 170
- //GO(__NR_setresgid, ".m .s");
+ //GO(__NR_setresgid, ".s .m");
//SY(__NR_setresgid);
// __NR_getresgid 171
- //GO(__NR_getresgid, ".m .s");
+ //GO(__NR_getresgid, ".s .m");
//SY(__NR_getresgid);
// __NR_prctl 172
- //GO(__NR_prctl, ".m .s");
+ //GO(__NR_prctl, ".s .m");
//SY(__NR_prctl);
// __NR_rt_sigreturn 173
- //GO(__NR_rt_sigreturn, ".m .s");
+ //GO(__NR_rt_sigreturn, ".s .m");
//SY(__NR_rt_sigreturn);
// __NR_rt_sigaction 174
- //GO(__NR_rt_sigaction, ".m .s");
+ //GO(__NR_rt_sigaction, ".s .m");
//SY(__NR_rt_sigaction);
// __NR_rt_sigprocmask 175
- //GO(__NR_rt_sigprocmask, ".m .s");
+ //GO(__NR_rt_sigprocmask, ".s .m");
//SY(__NR_rt_sigprocmask);
// __NR_rt_sigpending 176
- //GO(__NR_rt_sigpending, ".m .s");
+ //GO(__NR_rt_sigpending, ".s .m");
//SY(__NR_rt_sigpending);
// __NR_rt_sigtimedwait 177
- //GO(__NR_rt_sigtimedwait, ".m .s");
+ //GO(__NR_rt_sigtimedwait, ".s .m");
//SY(__NR_rt_sigtimedwait);
// __NR_rt_sigqueueinfo 178
- //GO(__NR_rt_sigqueueinfo, ".m .s");
+ //GO(__NR_rt_sigqueueinfo, ".s .m");
//SY(__NR_rt_sigqueueinfo);
// __NR_rt_sigsuspend 179
- //GO(__NR_rt_sigsuspend, ".m .s");
+ //GO(__NR_rt_sigsuspend, ".s .m");
//SY(__NR_rt_sigsuspend);
// __NR_pread64 180
- //GO(__NR_pread64, ".m .s");
+ //GO(__NR_pread64, ".s .m");
//SY(__NR_pread64);
// __NR_pwrite64 181
- //GO(__NR_pwrite64, ".m .s");
+ //GO(__NR_pwrite64, ".s .m");
//SY(__NR_pwrite64);
// __NR_chown 182
- //GO(__NR_chown, ".m .s");
+ //GO(__NR_chown, ".s .m");
//SY(__NR_chown);
// __NR_getcwd 183
- //GO(__NR_getcwd, ".m .s");
+ //GO(__NR_getcwd, ".s .m");
//SY(__NR_getcwd);
// __NR_capget 184
- //GO(__NR_capget, ".m .s");
+ //GO(__NR_capget, ".s .m");
//SY(__NR_capget);
// __NR_capset 185
- //GO(__NR_capset, ".m .s");
+ //GO(__NR_capset, ".s .m");
//SY(__NR_capset);
// __NR_sigaltstack 186
- //GO(__NR_sigaltstack, ".m .s");
+ //GO(__NR_sigaltstack, ".s .m");
//SY(__NR_sigaltstack);
// __NR_sendfile 187
- //GO(__NR_sendfile, ".m .s");
+ //GO(__NR_sendfile, ".s .m");
//SY(__NR_sendfile);
// __NR_getpmsg 188
- //GO(__NR_getpmsg, ".m .s");
+ //GO(__NR_getpmsg, ".s .m");
//SY(__NR_getpmsg);
// __NR_putpmsg 189
- //GO(__NR_putpmsg, ".m .s");
+ //GO(__NR_putpmsg, ".s .m");
//SY(__NR_putpmsg);
// __NR_vfork 190
- //GO(__NR_vfork, ".m .s");
+ //GO(__NR_vfork, ".s .m");
//SY(__NR_vfork);
// __NR_ugetrlimit 191
- //GO(__NR_ugetrlimit, ".m .s");
- //SY(__NR_ugetrlimit);
+ GO(__NR_ugetrlimit, "2s 1m");
+ SY(__NR_ugetrlimit, x0, x0);
// __NR_mmap2 192
- //GO(__NR_mmap2, ".m .s");
+ //GO(__NR_mmap2, ".s .m");
//SY(__NR_mmap2);
// __NR_truncate64 193
- //GO(__NR_truncate64, ".m .s");
+ //GO(__NR_truncate64, ".s .m");
//SY(__NR_truncate64);
// __NR_ftruncate64 194
- //GO(__NR_ftruncate64, ".m .s");
+ //GO(__NR_ftruncate64, ".s .m");
//SY(__NR_ftruncate64);
// __NR_stat64 195
- //GO(__NR_stat64, ".m .s");
+ //GO(__NR_stat64, ".s .m");
//SY(__NR_stat64);
// __NR_lstat64 196
- //GO(__NR_lstat64, ".m .s");
+ //GO(__NR_lstat64, ".s .m");
//SY(__NR_lstat64);
// __NR_fstat64 197
- //GO(__NR_fstat64, ".m .s");
+ //GO(__NR_fstat64, ".s .m");
//SY(__NR_fstat64);
// __NR_lchown32 198
- //GO(__NR_lchown32, ".m .s");
+ //GO(__NR_lchown32, ".s .m");
//SY(__NR_lchown32);
@@ -815,33 +815,33 @@ int main(void)
// __NR_getgroups32 205
- //GO(__NR_getgroups32, ".m .s");
+ //GO(__NR_getgroups32, ".s .m");
//SY(__NR_getgroups32);
// __NR_setgroups32 206
- //GO(__NR_setgroups32, ".m .s");
+ //GO(__NR_setgroups32, ".s .m");
//SY(__NR_setgroups32);
// __NR_fchown32 207
- //GO(__NR_fchown32, ".m .s");
+ //GO(__NR_fchown32, ".s .m");
//SY(__NR_fchown32);
// __NR_setresuid32 208
- //GO(__NR_setresuid32, ".m .s");
+ //GO(__NR_setresuid32, ".s .m");
//SY(__NR_setresuid32);
// __NR_getresuid32 209
- //GO(__NR_getresuid32, ".m .s");
+ //GO(__NR_getresuid32, ".s .m");
//SY(__NR_getresuid32);
// __NR_setresgid32 210
- //GO(__NR_setresgid32, ".m .s");
+ //GO(__NR_setresgid32, ".s .m");
//SY(__NR_setresgid32);
// __NR_getresgid32 211
- //GO(__NR_getresgid32, ".m .s");
+ //GO(__NR_getresgid32, ".s .m");
//SY(__NR_getresgid32);
// __NR_chown32 212
- //GO(__NR_chown32, ".m .s");
+ //GO(__NR_chown32, ".s .m");
//SY(__NR_chown32);
@@ -855,29 +855,29 @@ int main(void)
// __NR_setfsuid32 215
- //GO(__NR_setfsuid32, ".m .s");
+ //GO(__NR_setfsuid32, ".s .m");
//SY(__NR_setfsuid32);
// __NR_setfsgid32 216
- //GO(__NR_setfsgid32, ".m .s");
+ //GO(__NR_setfsgid32, ".s .m");
//SY(__NR_setfsgid32);
// __NR_pivot_root 217
- //GO(__NR_pivot_root, ".m .s");
+ //GO(__NR_pivot_root, ".s .m");
//SY(__NR_pivot_root);
// __NR_mincore 218
- //GO(__NR_mincore, ".m .s");
+ //GO(__NR_mincore, ".s .m");
//SY(__NR_mincore);
// __NR_madvise 219
- //GO(__NR_madvise, ".m .s");
+ //GO(__NR_madvise, ".s .m");
//SY(__NR_madvise);
// __NR_getdents64 220
- //GO(__NR_getdents64, ".m .s");
+ //GO(__NR_getdents64, ".s .m");
//SY(__NR_getdents64);
// __NR_fcntl64 221
- //GO(__NR_fcntl64, ".m .s");
+ //GO(__NR_fcntl64, ".s .m");
//SY(__NR_fcntl64);
@@ -891,109 +891,109 @@ int main(void)
// __NR_gettid 224
- //GO(__NR_gettid, ".m .s");
+ //GO(__NR_gettid, ".s .m");
//SY(__NR_gettid);
// __NR_readahead 225
- //GO(__NR_readahead, ".m .s");
+ //GO(__NR_readahead, ".s .m");
//SY(__NR_readahead);
// __NR_setxattr 226
- //GO(__NR_setxattr, ".m .s");
+ //GO(__NR_setxattr, ".s .m");
//SY(__NR_setxattr);
// __NR_lsetxattr 227
- //GO(__NR_lsetxattr, ".m .s");
+ //GO(__NR_lsetxattr, ".s .m");
//SY(__NR_lsetxattr);
// __NR_fsetxattr 228
- //GO(__NR_fsetxattr, ".m .s");
+ //GO(__NR_fsetxattr, ".s .m");
//SY(__NR_fsetxattr);
// __NR_getxattr 229
- //GO(__NR_getxattr, ".m .s");
+ //GO(__NR_getxattr, ".s .m");
//SY(__NR_getxattr);
// __NR_lgetxattr 230
- //GO(__NR_lgetxattr, ".m .s");
+ //GO(__NR_lgetxattr, ".s .m");
//SY(__NR_lgetxattr);
// __NR_fgetxattr 231
- //GO(__NR_fgetxattr, ".m .s");
+ //GO(__NR_fgetxattr, ".s .m");
//SY(__NR_fgetxattr);
// __NR_listxattr 232
- //GO(__NR_listxattr, ".m .s");
+ //GO(__NR_listxattr, ".s .m");
//SY(__NR_listxattr);
// __NR_llistxattr 233
- //GO(__NR_llistxattr, ".m .s");
+ //GO(__NR_llistxattr, ".s .m");
//SY(__NR_llistxattr);
// __NR_flistxattr 234
- //GO(__NR_flistxattr, ".m .s");
+ //GO(__NR_flistxattr, ".s .m");
//SY(__NR_flistxattr);
// __NR_removexattr 235
- //GO(__NR_removexattr, ".m .s");
+ //GO(__NR_removexattr, ".s .m");
//SY(__NR_removexattr);
// __NR_lremovexattr 236
- //GO(__NR_lremovexattr, ".m .s");
+ //GO(__NR_lremovexattr, ".s .m");
//SY(__NR_lremovexattr);
// __NR_fremovexattr 237
- //GO(__NR_fremovexattr, ".m .s");
+ //GO(__NR_fremovexattr, ".s .m");
//SY(__NR_fremovexattr);
// __NR_tkill 238
- //GO(__NR_tkill, ".m .s");
+ //GO(__NR_tkill, ".s .m");
//SY(__NR_tkill);
// __NR_sendfile64 239
- //GO(__NR_sendfile64, ".m .s");
+ //GO(__NR_sendfile64, ".s .m");
//SY(__NR_sendfile64);
// __NR_futex 240
- //GO(__NR_futex, ".m .s");
+ //GO(__NR_futex, ".s .m");
//SY(__NR_futex);
// __NR_sched_setaffinity 241
- //GO(__NR_sched_setaffinity, ".m .s");
+ //GO(__NR_sched_setaffinity, ".s .m");
//SY(__NR_sched_setaffinity);
// __NR_sched_getaffinity 242
- //GO(__NR_sched_getaffinity, ".m .s");
+ //GO(__NR_sched_getaffinity, ".s .m");
//SY(__NR_sched_getaffinity);
// __NR_set_thread_area 243
- //GO(__NR_set_thread_area, ".m .s");
+ //GO(__NR_set_thread_area, ".s .m");
//SY(__NR_set_thread_area);
// __NR_get_thread_area 244
- //GO(__NR_get_thread_area, ".m .s");
+ //GO(__NR_get_thread_area, ".s .m");
//SY(__NR_get_thread_area);
// __NR_io_setup 245
- //GO(__NR_io_setup, ".m .s");
+ //GO(__NR_io_setup, ".s .m");
//SY(__NR_io_setup);
// __NR_io_destroy 246
- //GO(__NR_io_destroy, ".m .s");
+ //GO(__NR_io_destroy, ".s .m");
//SY(__NR_io_destroy);
// __NR_io_getevents 247
- //GO(__NR_io_getevents, ".m .s");
+ //GO(__NR_io_getevents, ".s .m");
//SY(__NR_io_getevents);
// __NR_io_submit 248
- //GO(__NR_io_submit, ".m .s");
+ //GO(__NR_io_submit, ".s .m");
//SY(__NR_io_submit);
// __NR_io_cancel 249
- //GO(__NR_io_cancel, ".m .s");
+ //GO(__NR_io_cancel, ".s .m");
//SY(__NR_io_cancel);
// __NR_fadvise64 250
- //GO(__NR_fadvise64, ".m .s");
+ //GO(__NR_fadvise64, ".s .m");
//SY(__NR_fadvise64);
@@ -1009,77 +1009,77 @@ int main(void)
// __NR_epoll_create 254
- //GO(__NR_epoll_create, ".m .s");
+ //GO(__NR_epoll_create, ".s .m");
//SY(__NR_epoll_create);
// __NR_epoll_ctl 255
- //GO(__NR_epoll_ctl, ".m .s");
+ //GO(__NR_epoll_ctl, ".s .m");
//SY(__NR_epoll_ctl);
// __NR_epoll_wait 256
- //GO(__NR_epoll_wait, ".m .s");
+ //GO(__NR_epoll_wait, ".s .m");
//SY(__NR_epoll_wait);
// __NR_remap_file_pages 257
- //GO(__NR_remap_file_pages, ".m .s");
+ //GO(__NR_remap_file_pages, ".s .m");
//SY(__NR_remap_file_pages);
// __NR_set_tid_address 258
- //GO(__NR_set_tid_address, ".m .s");
+ //GO(__NR_set_tid_address, ".s .m");
//SY(__NR_set_tid_address);
// __NR_timer_create 259
- //GO(__NR_timer_create, ".m .s");
+ //GO(__NR_timer_create, ".s .m");
//SY(__NR_timer_create);
// __NR_timer_settime (__NR_timer_create+1)
- //GO(__NR_timer_settime, ".m .s");
+ //GO(__NR_timer_settime, ".s .m");
//SY(__NR_timer_settime);
// __NR_timer_gettime (__NR_timer_create+2)
- //GO(__NR_timer_gettime, ".m .s");
+ //GO(__NR_timer_gettime, ".s .m");
//SY(__NR_timer_gettime);
// __NR_timer_getoverrun (__NR_timer_create+3)
- //GO(__NR_timer_getoverrun, ".m .s");
+ //GO(__NR_timer_getoverrun, ".s .m");
//SY(__NR_timer_getoverrun);
// __NR_timer_delete (__NR_timer_create+4)
- //GO(__NR_timer_delete, ".m .s");
+ //GO(__NR_timer_delete, ".s .m");
//SY(__NR_timer_delete);
// __NR_clock_settime (__NR_timer_create+5)
- //GO(__NR_clock_settime, ".m .s");
+ //GO(__NR_clock_settime, ".s .m");
//SY(__NR_clock_settime);
// __NR_clock_gettime (__NR_timer_create+6)
- //GO(__NR_clock_gettime, ".m .s");
+ //GO(__NR_clock_gettime, ".s .m");
//SY(__NR_clock_gettime);
// __NR_clock_getres (__NR_timer_create+7)
- //GO(__NR_clock_getres, ".m .s");
+ //GO(__NR_clock_getres, ".s .m");
//SY(__NR_clock_getres);
// __NR_clock_nanosleep (__NR_timer_create+8)
- //GO(__NR_clock_nanosleep, ".m .s");
+ //GO(__NR_clock_nanosleep, ".s .m");
//SY(__NR_clock_nanosleep);
// __NR_statfs64 268
- //GO(__NR_statfs64, ".m .s");
+ //GO(__NR_statfs64, ".s .m");
//SY(__NR_statfs64);
// __NR_fstatfs64 269
- //GO(__NR_fstatfs64, ".m .s");
+ //GO(__NR_fstatfs64, ".s .m");
//SY(__NR_fstatfs64);
// __NR_tgkill 270
- //GO(__NR_tgkill, ".m .s");
+ //GO(__NR_tgkill, ".s .m");
//SY(__NR_tgkill);
// __NR_utimes 271
- //GO(__NR_utimes, ".m .s");
+ //GO(__NR_utimes, ".s .m");
//SY(__NR_utimes);
// __NR_fadvise64_64 272
- //GO(__NR_fadvise64_64, ".m .s");
+ //GO(__NR_fadvise64_64, ".s .m");
//SY(__NR_fadvise64_64);
@@ -1089,37 +1089,37 @@ int main(void)
// __NR_mbind 274
- //GO(__NR_mbind, ".m .s");
+ //GO(__NR_mbind, ".s .m");
//SY(__NR_mbind);
// __NR_get_mempolicy 275
- //GO(__NR_get_mempolicy, ".m .s");
+ //GO(__NR_get_mempolicy, ".s .m");
//SY(__NR_get_mempolicy);
// __NR_set_mempolicy 276
- //GO(__NR_set_mempolicy, ".m .s");
+ //GO(__NR_set_mempolicy, ".s .m");
//SY(__NR_set_mempolicy);
// __NR_mq_open 277
- //GO(__NR_mq_open, ".m .s");
+ //GO(__NR_mq_open, ".s .m");
//SY(__NR_mq_open);
// __NR_mq_unlink (__NR_mq_open+1)
- //GO(__NR_mq_unlink, ".m .s");
+ //GO(__NR_mq_unlink, ".s .m");
//SY(__NR_mq_unlink);
// __NR_mq_timedsend (__NR_mq_open+2)
- //GO(__NR_mq_timedsend, ".m .s");
+ //GO(__NR_mq_timedsend, ".s .m");
//SY(__NR_mq_timedsend);
// __NR_mq_timedreceive (__NR_mq_open+3)
- //GO(__NR_mq_timedreceive, ".m .s");
+ //GO(__NR_mq_timedreceive, ".s .m");
//SY(__NR_mq_timedreceive);
// __NR_mq_notify (__NR_mq_open+4)
- //GO(__NR_mq_notify, ".m .s");
+ //GO(__NR_mq_notify, ".s .m");
//SY(__NR_mq_notify);
// __NR_mq_getsetattr (__NR_mq_open+5)
- //GO(__NR_mq_getsetattr, ".m .s");
+ //GO(__NR_mq_getsetattr, ".s .m");
//SY(__NR_mq_getsetattr);
--- valgrind/memcheck/tests/scalar.stderr.exp #1.16:1.17
@@ -829,4 +829,23 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+ 76: __NR_getrlimit 2s 1m
+-----------------------------------------------------
+
+Syscall param old_getrlimit(resource) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param old_getrlimit(rlim) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param old_getrlimit(rlim) 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
+-----------------------------------------------------
111: __NR_vhangup 0e
-----------------------------------------------------
@@ -864,4 +883,23 @@
-----------------------------------------------------
-----------------------------------------------------
+191: __NR_ugetrlimit 2s 1m
+-----------------------------------------------------
+
+Syscall param getrlimit(resource) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param getrlimit(rlim) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param getrlimit(rlim) 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
+-----------------------------------------------------
199: __NR_getuid32 0e
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 21:00:15
|
CVS commit by nethercote:
Add commented-out templates so further additions are easier.
M +525 -6 scalar.c 1.19
--- valgrind/memcheck/tests/scalar.c #1.18:1.19
@@ -305,11 +305,34 @@ int main(void)
// __NR_getrlimit 76
+ //GO(__NR_getrlimit, ".m .s");
+ //SY(__NR_getrlimit);
+
// __NR_getrusage 77
+ //GO(__NR_getrusage, ".m .s");
+ //SY(__NR_getrusage);
+
// __NR_gettimeofday 78
+ //GO(__NR_gettimeofday, ".m .s");
+ //SY(__NR_gettimeofday);
+
// __NR_settimeofday 79
+ //GO(__NR_settimeofday, ".m .s");
+ //SY(__NR_settimeofday);
+
// __NR_getgroups 80
+ //GO(__NR_getgroups, ".m .s");
+ //SY(__NR_getgroups);
+
// __NR_setgroups 81
+ //GO(__NR_setgroups, ".m .s");
+ //SY(__NR_setgroups);
+
// __NR_select 82
+ //GO(__NR_select, ".m .s");
+ //SY(__NR_select);
+
// __NR_symlink 83
+ //GO(__NR_symlink, ".m .s");
+ //SY(__NR_symlink);
// __NR_oldlstat 84
@@ -317,4 +340,6 @@ int main(void)
// __NR_readlink 85
+ //GO(__NR_readlink, ".m .s");
+ //SY(__NR_readlink);
// __NR_uselib 86
@@ -331,22 +356,78 @@ int main(void)
// __NR_mmap 90
+ //GO(__NR_mmap, ".m .s");
+ //SY(__NR_mmap);
+
// __NR_munmap 91
+ //GO(__NR_munmap, ".m .s");
+ //SY(__NR_munmap);
+
// __NR_truncate 92
+ //GO(__NR_truncate, ".m .s");
+ //SY(__NR_truncate);
+
// __NR_ftruncate 93
+ //GO(__NR_ftruncate, ".m .s");
+ //SY(__NR_ftruncate);
+
// __NR_fchmod 94
+ //GO(__NR_fchmod, ".m .s");
+ //SY(__NR_fchmod);
+
// __NR_fchown 95
+ //GO(__NR_fchown, ".m .s");
+ //SY(__NR_fchown);
+
// __NR_getpriority 96
+ //GO(__NR_getpriority, ".m .s");
+ //SY(__NR_getpriority);
+
// __NR_setpriority 97
+ //GO(__NR_setpriority, ".m .s");
+ //SY(__NR_setpriority);
+
// __NR_profil 98
+ //GO(__NR_profil, ".m .s");
+ //SY(__NR_profil);
+
// __NR_statfs 99
+ //GO(__NR_statfs, ".m .s");
+ //SY(__NR_statfs);
+
// __NR_fstatfs 100
+ //GO(__NR_fstatfs, ".m .s");
+ //SY(__NR_fstatfs);
+
// __NR_ioperm 101
+ //GO(__NR_ioperm, ".m .s");
+ //SY(__NR_ioperm);
+
// __NR_socketcall 102
+ //GO(__NR_socketcall, ".m .s");
+ //SY(__NR_socketcall);
+
// __NR_syslog 103
+ //GO(__NR_syslog, ".m .s");
+ //SY(__NR_syslog);
+
// __NR_setitimer 104
+ //GO(__NR_setitimer, ".m .s");
+ //SY(__NR_setitimer);
+
// __NR_getitimer 105
+ //GO(__NR_getitimer, ".m .s");
+ //SY(__NR_getitimer);
+
// __NR_stat 106
+ //GO(__NR_stat, ".m .s");
+ //SY(__NR_stat);
+
// __NR_lstat 107
+ //GO(__NR_lstat, ".m .s");
+ //SY(__NR_lstat);
+
// __NR_fstat 108
+ //GO(__NR_fstat, ".m .s");
+ //SY(__NR_fstat);
// __NR_olduname 109
@@ -354,4 +435,6 @@ int main(void)
// __NR_iopl 110
+ //GO(__NR_iopl, ".m .s");
+ //SY(__NR_iopl);
// __NR_vhangup 111 --> sys_vhangup()
@@ -364,12 +447,38 @@ int main(void)
// __NR_vm86old 113
+ //GO(__NR_vm86old, ".m .s");
+ //SY(__NR_vm86old);
+
// __NR_wait4 114
+ //GO(__NR_wait4, ".m .s");
+ //SY(__NR_wait4);
+
// __NR_swapoff 115
+ //GO(__NR_swapoff, ".m .s");
+ //SY(__NR_swapoff);
+
// __NR_sysinfo 116
+ //GO(__NR_sysinfo, ".m .s");
+ //SY(__NR_sysinfo);
+
// __NR_ipc 117
+ //GO(__NR_ipc, ".m .s");
+ //SY(__NR_ipc);
+
// __NR_fsync 118
+ //GO(__NR_fsync, ".m .s");
+ //SY(__NR_fsync);
+
// __NR_sigreturn 119
+ //GO(__NR_sigreturn, ".m .s");
+ //SY(__NR_sigreturn);
+
// __NR_clone 120
+ //GO(__NR_clone, ".m .s");
+ //SY(__NR_clone);
+
// __NR_setdomainname 121
+ //GO(__NR_setdomainname, ".m .s");
+ //SY(__NR_setdomainname);
// __NR_uname 122
@@ -378,7 +487,18 @@ int main(void)
// __NR_modify_ldt 123
+ //GO(__NR_modify_ldt, ".m .s");
+ //SY(__NR_modify_ldt);
+
// __NR_adjtimex 124
+ //GO(__NR_adjtimex, ".m .s");
+ //SY(__NR_adjtimex);
+
// __NR_mprotect 125
+ //GO(__NR_mprotect, ".m .s");
+ //SY(__NR_mprotect);
+
// __NR_sigprocmask 126
+ //GO(__NR_sigprocmask, ".m .s");
+ //SY(__NR_sigprocmask);
// __NR_create_module 127 --> sys_ni_syscall()
@@ -387,5 +507,10 @@ int main(void)
// __NR_init_module 128
+ //GO(__NR_init_module, ".m .s");
+ //SY(__NR_init_module);
+
// __NR_delete_module 129
+ //GO(__NR_delete_module, ".m .s");
+ //SY(__NR_delete_module);
// __NR_get_kernel_syms 130 --> sys_ni_syscall()
@@ -394,9 +519,26 @@ int main(void)
// __NR_quotactl 131
+ //GO(__NR_quotactl, ".m .s");
+ //SY(__NR_quotactl);
+
// __NR_getpgid 132
+ //GO(__NR_getpgid, ".m .s");
+ //SY(__NR_getpgid);
+
// __NR_fchdir 133
+ //GO(__NR_fchdir, ".m .s");
+ //SY(__NR_fchdir);
+
// __NR_bdflush 134
+ //GO(__NR_bdflush, ".m .s");
+ //SY(__NR_bdflush);
+
// __NR_sysfs 135
+ //GO(__NR_sysfs, ".m .s");
+ //SY(__NR_sysfs);
+
// __NR_personality 136
+ //GO(__NR_personality, ".m .s");
+ //SY(__NR_personality);
// __NR_afs_syscall 137 --> sys_ni_syscall()
@@ -405,18 +547,62 @@ int main(void)
// __NR_setfsuid 138
+ //GO(__NR_setfsuid, ".m .s");
+ //SY(__NR_setfsuid);
+
// __NR_setfsgid 139
+ //GO(__NR_setfsgid, ".m .s");
+ //SY(__NR_setfsgid);
+
// __NR__llseek 140
+ //GO(__NR__llseek, ".m .s");
+ //SY(__NR__llseek);
+
// __NR_getdents 141
+ //GO(__NR_getdents, ".m .s");
+ //SY(__NR_getdents);
+
// __NR__newselect 142
+ //GO(__NR__newselect, ".m .s");
+ //SY(__NR__newselect);
+
// __NR_flock 143
+ //GO(__NR_flock, ".m .s");
+ //SY(__NR_flock);
+
// __NR_msync 144
+ //GO(__NR_msync, ".m .s");
+ //SY(__NR_msync);
+
// __NR_readv 145
+ //GO(__NR_readv, ".m .s");
+ //SY(__NR_readv);
+
// __NR_writev 146
+ //GO(__NR_writev, ".m .s");
+ //SY(__NR_writev);
+
// __NR_getsid 147
+ //GO(__NR_getsid, ".m .s");
+ //SY(__NR_getsid);
+
// __NR_fdatasync 148
+ //GO(__NR_fdatasync, ".m .s");
+ //SY(__NR_fdatasync);
+
// __NR__sysctl 149
+ //GO(__NR__sysctl, ".m .s");
+ //SY(__NR__sysctl);
+
// __NR_mlock 150
+ //GO(__NR_mlock, ".m .s");
+ //SY(__NR_mlock);
+
// __NR_munlock 151
+ //GO(__NR_munlock, ".m .s");
+ //SY(__NR_munlock);
+
// __NR_mlockall 152
+ //GO(__NR_mlockall, ".m .s");
+ //SY(__NR_mlockall);
// __NR_munlockall 153 --> sys_munlockall()
@@ -425,16 +611,54 @@ int main(void)
// __NR_sched_setparam 154
+ //GO(__NR_sched_setparam, ".m .s");
+ //SY(__NR_sched_setparam);
+
// __NR_sched_getparam 155
+ //GO(__NR_sched_getparam, ".m .s");
+ //SY(__NR_sched_getparam);
+
// __NR_sched_setscheduler 156
+ //GO(__NR_sched_setscheduler, ".m .s");
+ //SY(__NR_sched_setscheduler);
+
// __NR_sched_getscheduler 157
+ //GO(__NR_sched_getscheduler, ".m .s");
+ //SY(__NR_sched_getscheduler);
+
// __NR_sched_yield 158
+ //GO(__NR_sched_yield, ".m .s");
+ //SY(__NR_sched_yield);
+
// __NR_sched_get_priority_max 159
+ //GO(__NR_sched_get_priority_max, ".m .s");
+ //SY(__NR_sched_get_priority_max);
+
// __NR_sched_get_priority_min 160
+ //GO(__NR_sched_get_priority_min, ".m .s");
+ //SY(__NR_sched_get_priority_min);
+
// __NR_sched_rr_get_interval 161
+ //GO(__NR_sched_rr_get_interval, ".m .s");
+ //SY(__NR_sched_rr_get_interval);
+
// __NR_nanosleep 162
+ //GO(__NR_nanosleep, ".m .s");
+ //SY(__NR_nanosleep);
+
// __NR_mremap 163
+ //GO(__NR_mremap, ".m .s");
+ //SY(__NR_mremap);
+
// __NR_setresuid 164
+ //GO(__NR_setresuid, ".m .s");
+ //SY(__NR_setresuid);
+
// __NR_getresuid 165
+ //GO(__NR_getresuid, ".m .s");
+ //SY(__NR_getresuid);
+
// __NR_vm86 166
+ //GO(__NR_vm86, ".m .s");
+ //SY(__NR_vm86);
// __NR_query_module 167 --> sys_ni_syscall()
@@ -443,34 +667,126 @@ int main(void)
// __NR_poll 168
+ //GO(__NR_poll, ".m .s");
+ //SY(__NR_poll);
+
// __NR_nfsservctl 169
+ //GO(__NR_nfsservctl, ".m .s");
+ //SY(__NR_nfsservctl);
+
// __NR_setresgid 170
+ //GO(__NR_setresgid, ".m .s");
+ //SY(__NR_setresgid);
+
// __NR_getresgid 171
+ //GO(__NR_getresgid, ".m .s");
+ //SY(__NR_getresgid);
+
// __NR_prctl 172
+ //GO(__NR_prctl, ".m .s");
+ //SY(__NR_prctl);
+
// __NR_rt_sigreturn 173
+ //GO(__NR_rt_sigreturn, ".m .s");
+ //SY(__NR_rt_sigreturn);
+
// __NR_rt_sigaction 174
+ //GO(__NR_rt_sigaction, ".m .s");
+ //SY(__NR_rt_sigaction);
+
// __NR_rt_sigprocmask 175
+ //GO(__NR_rt_sigprocmask, ".m .s");
+ //SY(__NR_rt_sigprocmask);
+
// __NR_rt_sigpending 176
+ //GO(__NR_rt_sigpending, ".m .s");
+ //SY(__NR_rt_sigpending);
+
// __NR_rt_sigtimedwait 177
+ //GO(__NR_rt_sigtimedwait, ".m .s");
+ //SY(__NR_rt_sigtimedwait);
+
// __NR_rt_sigqueueinfo 178
+ //GO(__NR_rt_sigqueueinfo, ".m .s");
+ //SY(__NR_rt_sigqueueinfo);
+
// __NR_rt_sigsuspend 179
+ //GO(__NR_rt_sigsuspend, ".m .s");
+ //SY(__NR_rt_sigsuspend);
+
// __NR_pread64 180
+ //GO(__NR_pread64, ".m .s");
+ //SY(__NR_pread64);
+
// __NR_pwrite64 181
+ //GO(__NR_pwrite64, ".m .s");
+ //SY(__NR_pwrite64);
+
// __NR_chown 182
+ //GO(__NR_chown, ".m .s");
+ //SY(__NR_chown);
+
// __NR_getcwd 183
+ //GO(__NR_getcwd, ".m .s");
+ //SY(__NR_getcwd);
+
// __NR_capget 184
+ //GO(__NR_capget, ".m .s");
+ //SY(__NR_capget);
+
// __NR_capset 185
+ //GO(__NR_capset, ".m .s");
+ //SY(__NR_capset);
+
// __NR_sigaltstack 186
+ //GO(__NR_sigaltstack, ".m .s");
+ //SY(__NR_sigaltstack);
+
// __NR_sendfile 187
+ //GO(__NR_sendfile, ".m .s");
+ //SY(__NR_sendfile);
+
// __NR_getpmsg 188
+ //GO(__NR_getpmsg, ".m .s");
+ //SY(__NR_getpmsg);
+
// __NR_putpmsg 189
+ //GO(__NR_putpmsg, ".m .s");
+ //SY(__NR_putpmsg);
+
// __NR_vfork 190
+ //GO(__NR_vfork, ".m .s");
+ //SY(__NR_vfork);
+
// __NR_ugetrlimit 191
+ //GO(__NR_ugetrlimit, ".m .s");
+ //SY(__NR_ugetrlimit);
+
// __NR_mmap2 192
+ //GO(__NR_mmap2, ".m .s");
+ //SY(__NR_mmap2);
+
// __NR_truncate64 193
+ //GO(__NR_truncate64, ".m .s");
+ //SY(__NR_truncate64);
+
// __NR_ftruncate64 194
+ //GO(__NR_ftruncate64, ".m .s");
+ //SY(__NR_ftruncate64);
+
// __NR_stat64 195
+ //GO(__NR_stat64, ".m .s");
+ //SY(__NR_stat64);
+
// __NR_lstat64 196
+ //GO(__NR_lstat64, ".m .s");
+ //SY(__NR_lstat64);
+
// __NR_fstat64 197
+ //GO(__NR_fstat64, ".m .s");
+ //SY(__NR_fstat64);
+
// __NR_lchown32 198
+ //GO(__NR_lchown32, ".m .s");
+ //SY(__NR_lchown32);
// __NR_getuid32 199 --> sys_getuid()
@@ -499,11 +815,34 @@ int main(void)
// __NR_getgroups32 205
+ //GO(__NR_getgroups32, ".m .s");
+ //SY(__NR_getgroups32);
+
// __NR_setgroups32 206
+ //GO(__NR_setgroups32, ".m .s");
+ //SY(__NR_setgroups32);
+
// __NR_fchown32 207
+ //GO(__NR_fchown32, ".m .s");
+ //SY(__NR_fchown32);
+
// __NR_setresuid32 208
+ //GO(__NR_setresuid32, ".m .s");
+ //SY(__NR_setresuid32);
+
// __NR_getresuid32 209
+ //GO(__NR_getresuid32, ".m .s");
+ //SY(__NR_getresuid32);
+
// __NR_setresgid32 210
+ //GO(__NR_setresgid32, ".m .s");
+ //SY(__NR_setresgid32);
+
// __NR_getresgid32 211
+ //GO(__NR_getresgid32, ".m .s");
+ //SY(__NR_getresgid32);
+
// __NR_chown32 212
+ //GO(__NR_chown32, ".m .s");
+ //SY(__NR_chown32);
// __NR_setuid32 213 --> sys_setuid()
@@ -516,12 +855,30 @@ int main(void)
// __NR_setfsuid32 215
+ //GO(__NR_setfsuid32, ".m .s");
+ //SY(__NR_setfsuid32);
+
// __NR_setfsgid32 216
+ //GO(__NR_setfsgid32, ".m .s");
+ //SY(__NR_setfsgid32);
+
// __NR_pivot_root 217
+ //GO(__NR_pivot_root, ".m .s");
+ //SY(__NR_pivot_root);
+
// __NR_mincore 218
+ //GO(__NR_mincore, ".m .s");
+ //SY(__NR_mincore);
+
// __NR_madvise 219
+ //GO(__NR_madvise, ".m .s");
+ //SY(__NR_madvise);
+
// __NR_getdents64 220
- // __NR_fcntl64 221
+ //GO(__NR_getdents64, ".m .s");
+ //SY(__NR_getdents64);
- // XXX: from here on in, not present in early 2.4 kernels
+ // __NR_fcntl64 221
+ //GO(__NR_fcntl64, ".m .s");
+ //SY(__NR_fcntl64);
// 222 --> sys_ni_syscall()
@@ -534,30 +891,110 @@ int main(void)
// __NR_gettid 224
+ //GO(__NR_gettid, ".m .s");
+ //SY(__NR_gettid);
+
// __NR_readahead 225
+ //GO(__NR_readahead, ".m .s");
+ //SY(__NR_readahead);
+
// __NR_setxattr 226
+ //GO(__NR_setxattr, ".m .s");
+ //SY(__NR_setxattr);
+
// __NR_lsetxattr 227
+ //GO(__NR_lsetxattr, ".m .s");
+ //SY(__NR_lsetxattr);
+
// __NR_fsetxattr 228
+ //GO(__NR_fsetxattr, ".m .s");
+ //SY(__NR_fsetxattr);
+
// __NR_getxattr 229
+ //GO(__NR_getxattr, ".m .s");
+ //SY(__NR_getxattr);
+
// __NR_lgetxattr 230
+ //GO(__NR_lgetxattr, ".m .s");
+ //SY(__NR_lgetxattr);
+
// __NR_fgetxattr 231
+ //GO(__NR_fgetxattr, ".m .s");
+ //SY(__NR_fgetxattr);
+
// __NR_listxattr 232
+ //GO(__NR_listxattr, ".m .s");
+ //SY(__NR_listxattr);
+
// __NR_llistxattr 233
+ //GO(__NR_llistxattr, ".m .s");
+ //SY(__NR_llistxattr);
+
// __NR_flistxattr 234
+ //GO(__NR_flistxattr, ".m .s");
+ //SY(__NR_flistxattr);
+
// __NR_removexattr 235
+ //GO(__NR_removexattr, ".m .s");
+ //SY(__NR_removexattr);
+
// __NR_lremovexattr 236
+ //GO(__NR_lremovexattr, ".m .s");
+ //SY(__NR_lremovexattr);
+
// __NR_fremovexattr 237
+ //GO(__NR_fremovexattr, ".m .s");
+ //SY(__NR_fremovexattr);
+
// __NR_tkill 238
+ //GO(__NR_tkill, ".m .s");
+ //SY(__NR_tkill);
+
// __NR_sendfile64 239
+ //GO(__NR_sendfile64, ".m .s");
+ //SY(__NR_sendfile64);
+
// __NR_futex 240
+ //GO(__NR_futex, ".m .s");
+ //SY(__NR_futex);
+
// __NR_sched_setaffinity 241
+ //GO(__NR_sched_setaffinity, ".m .s");
+ //SY(__NR_sched_setaffinity);
+
// __NR_sched_getaffinity 242
+ //GO(__NR_sched_getaffinity, ".m .s");
+ //SY(__NR_sched_getaffinity);
+
// __NR_set_thread_area 243
+ //GO(__NR_set_thread_area, ".m .s");
+ //SY(__NR_set_thread_area);
+
// __NR_get_thread_area 244
+ //GO(__NR_get_thread_area, ".m .s");
+ //SY(__NR_get_thread_area);
+
// __NR_io_setup 245
+ //GO(__NR_io_setup, ".m .s");
+ //SY(__NR_io_setup);
+
// __NR_io_destroy 246
+ //GO(__NR_io_destroy, ".m .s");
+ //SY(__NR_io_destroy);
+
// __NR_io_getevents 247
+ //GO(__NR_io_getevents, ".m .s");
+ //SY(__NR_io_getevents);
+
// __NR_io_submit 248
+ //GO(__NR_io_submit, ".m .s");
+ //SY(__NR_io_submit);
+
// __NR_io_cancel 249
+ //GO(__NR_io_cancel, ".m .s");
+ //SY(__NR_io_cancel);
+
// __NR_fadvise64 250
+ //GO(__NR_fadvise64, ".m .s");
+ //SY(__NR_fadvise64);
// 251 --> sys_ni_syscall()
@@ -572,22 +1009,78 @@ int main(void)
// __NR_epoll_create 254
+ //GO(__NR_epoll_create, ".m .s");
+ //SY(__NR_epoll_create);
+
// __NR_epoll_ctl 255
+ //GO(__NR_epoll_ctl, ".m .s");
+ //SY(__NR_epoll_ctl);
+
// __NR_epoll_wait 256
+ //GO(__NR_epoll_wait, ".m .s");
+ //SY(__NR_epoll_wait);
+
// __NR_remap_file_pages 257
+ //GO(__NR_remap_file_pages, ".m .s");
+ //SY(__NR_remap_file_pages);
+
// __NR_set_tid_address 258
+ //GO(__NR_set_tid_address, ".m .s");
+ //SY(__NR_set_tid_address);
+
// __NR_timer_create 259
+ //GO(__NR_timer_create, ".m .s");
+ //SY(__NR_timer_create);
+
// __NR_timer_settime (__NR_timer_create+1)
+ //GO(__NR_timer_settime, ".m .s");
+ //SY(__NR_timer_settime);
+
// __NR_timer_gettime (__NR_timer_create+2)
+ //GO(__NR_timer_gettime, ".m .s");
+ //SY(__NR_timer_gettime);
+
// __NR_timer_getoverrun (__NR_timer_create+3)
+ //GO(__NR_timer_getoverrun, ".m .s");
+ //SY(__NR_timer_getoverrun);
+
// __NR_timer_delete (__NR_timer_create+4)
+ //GO(__NR_timer_delete, ".m .s");
+ //SY(__NR_timer_delete);
+
// __NR_clock_settime (__NR_timer_create+5)
+ //GO(__NR_clock_settime, ".m .s");
+ //SY(__NR_clock_settime);
+
// __NR_clock_gettime (__NR_timer_create+6)
+ //GO(__NR_clock_gettime, ".m .s");
+ //SY(__NR_clock_gettime);
+
// __NR_clock_getres (__NR_timer_create+7)
+ //GO(__NR_clock_getres, ".m .s");
+ //SY(__NR_clock_getres);
+
// __NR_clock_nanosleep (__NR_timer_create+8)
+ //GO(__NR_clock_nanosleep, ".m .s");
+ //SY(__NR_clock_nanosleep);
+
// __NR_statfs64 268
+ //GO(__NR_statfs64, ".m .s");
+ //SY(__NR_statfs64);
+
// __NR_fstatfs64 269
+ //GO(__NR_fstatfs64, ".m .s");
+ //SY(__NR_fstatfs64);
+
// __NR_tgkill 270
+ //GO(__NR_tgkill, ".m .s");
+ //SY(__NR_tgkill);
+
// __NR_utimes 271
+ //GO(__NR_utimes, ".m .s");
+ //SY(__NR_utimes);
+
// __NR_fadvise64_64 272
+ //GO(__NR_fadvise64_64, ".m .s");
+ //SY(__NR_fadvise64_64);
// __NR_vserver 273 --> sys_ni_syscall()
@@ -596,12 +1089,38 @@ int main(void)
// __NR_mbind 274
+ //GO(__NR_mbind, ".m .s");
+ //SY(__NR_mbind);
+
// __NR_get_mempolicy 275
+ //GO(__NR_get_mempolicy, ".m .s");
+ //SY(__NR_get_mempolicy);
+
// __NR_set_mempolicy 276
+ //GO(__NR_set_mempolicy, ".m .s");
+ //SY(__NR_set_mempolicy);
+
// __NR_mq_open 277
+ //GO(__NR_mq_open, ".m .s");
+ //SY(__NR_mq_open);
+
// __NR_mq_unlink (__NR_mq_open+1)
+ //GO(__NR_mq_unlink, ".m .s");
+ //SY(__NR_mq_unlink);
+
// __NR_mq_timedsend (__NR_mq_open+2)
+ //GO(__NR_mq_timedsend, ".m .s");
+ //SY(__NR_mq_timedsend);
+
// __NR_mq_timedreceive (__NR_mq_open+3)
+ //GO(__NR_mq_timedreceive, ".m .s");
+ //SY(__NR_mq_timedreceive);
+
// __NR_mq_notify (__NR_mq_open+4)
+ //GO(__NR_mq_notify, ".m .s");
+ //SY(__NR_mq_notify);
+
// __NR_mq_getsetattr (__NR_mq_open+5)
+ //GO(__NR_mq_getsetattr, ".m .s");
+ //SY(__NR_mq_getsetattr);
// __NR_sys_kexec_load 283 --> sys_ni_syscall()
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 20:38:39
|
CVS commit by nethercote:
mash things around to make further conversions quicker
M +217 -212 vg_syscalls.c 1.188
--- valgrind/coregrind/vg_syscalls.c #1.187:1.188
@@ -1078,14 +1078,21 @@ static Bool fd_allowed(Int fd, const Cha
#define PostOnFail (1 << 3)
-#define PRE(x) static void before_##x(ThreadId tid, ThreadState *tst)
-#define POST(x) static void after_##x(ThreadId tid, ThreadState *tst)
+#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) \
static UInt flags_##x = f; \
static void before_##x(ThreadId tid, ThreadState *tst)
+#define POSTx(x) \
+ static void after_##x(ThreadId tid, ThreadState *tst)
#define PREALIAS(new, old) \
- PRE(new) __attribute__((alias(STR(before_##old))))
+ PRE(new) __attribute__((alias(STR(before___NR_##old))))
#define POSTALIAS(new, old) \
+ POST(new) __attribute__((alias(STR(after___NR_##old))))
+
+#define PREALIASx(new, old) \
+ PRE(new) __attribute__((alias(STR(before_##old))))
+#define POSTALIASx(new, old) \
POST(new) __attribute__((alias(STR(after_##old))))
@@ -1167,5 +1174,5 @@ PREx(sys_ptrace, 0)
// XXX: I think this is x86/linux-specific
-POST(sys_ptrace)
+POSTx(sys_ptrace)
{
switch (arg1) {
@@ -1394,5 +1401,5 @@ PREx(sys_lookup_dcookie, 0)
}
-POST(sys_lookup_dcookie)
+POSTx(sys_lookup_dcookie)
{
if (arg3 != (Addr)NULL)
@@ -2020,5 +2027,5 @@ PREx(sys_close, 0)
}
-POST(sys_close)
+POSTx(sys_close)
{
if (VG_(clo_track_fds)) record_fd_close(tid, arg1);
@@ -2031,5 +2038,5 @@ PREx(sys_dup, 0)
}
-POST(sys_dup)
+POSTx(sys_dup)
{
if (!fd_allowed(res, "dup", tid, True)) {
@@ -2050,5 +2057,5 @@ PREx(sys_dup2, 0)
}
-POST(sys_dup2)
+POSTx(sys_dup2)
{
if (VG_(clo_track_fds))
@@ -2065,5 +2072,5 @@ PREx(sys_fcntl, 0)
}
-POST(sys_fcntl)
+POSTx(sys_fcntl)
{
if (arg2 == VKI_F_DUPFD) {
@@ -2152,5 +2159,5 @@ PREx(sys_fork, 0)
}
-POST(sys_fork)
+POSTx(sys_fork)
{
if (res == 0) {
@@ -3510,5 +3517,5 @@ PREx(sys_ioctl, MayBlock)
}
-POST(sys_ioctl)
+POSTx(sys_ioctl)
{
switch (arg2 /* request */) {
@@ -3915,5 +3922,5 @@ PREx(sys_kill, 0)
}
-POST(sys_kill)
+POSTx(sys_kill)
{
/* If this was a self-kill then wait for a signal to be
@@ -4174,5 +4181,5 @@ PREx(sys_open, MayBlock)
}
-POST(sys_open)
+POSTx(sys_open)
{
if (!fd_allowed(res, "open", tid, True)) {
@@ -4197,5 +4204,5 @@ PREx(sys_read, MayBlock)
}
-POST(sys_read)
+POSTx(sys_read)
{
POST_MEM_WRITE( arg2, res );
@@ -4220,5 +4227,5 @@ PREx(sys_creat, MayBlock)
}
-POST(sys_creat)
+POSTx(sys_creat)
{
if (!fd_allowed(res, "creat", tid, True)) {
@@ -4239,5 +4246,5 @@ PREx(sys_pipe, 0)
}
-POST(sys_pipe)
+POSTx(sys_pipe)
{
// XXX: use of Int here -- 32-bit-specific?
@@ -4524,5 +4531,5 @@ PREx(sys_setpgid, 0)
}
-POST(sys_setpgid)
+POSTx(sys_setpgid)
{
VG_(main_pgrp) = VG_(getpgrp)();
@@ -5063,5 +5070,5 @@ PREx(sys_time, 0)
}
-POST(sys_time)
+POSTx(sys_time)
{
if (arg1 != (UWord)NULL) {
@@ -5077,5 +5084,5 @@ PREx(sys_times, 0)
}
-POST(sys_times)
+POSTx(sys_times)
{
if (arg1 != (UWord)NULL) {
@@ -5111,5 +5118,5 @@ PREx(sys_newuname, 0)
}
-POST(sys_newuname)
+POSTx(sys_newuname)
{
if (arg1 != (UWord)NULL) {
@@ -5137,5 +5144,5 @@ PREx(sys_waitpid, MayBlock)
}
-POST(sys_waitpid)
+POSTx(sys_waitpid)
{
if (arg2 != (Addr)NULL)
@@ -5376,5 +5383,5 @@ PREx(sys_sigaction, SIG_SIM)
}
-POST(sys_sigaction)
+POSTx(sys_sigaction)
{
if (res == 0 && arg3 != (UWord)NULL)
@@ -5382,6 +5389,6 @@ POST(sys_sigaction)
}
-PREALIAS(rt_sigaction, sys_sigaction);
-POSTALIAS(rt_sigaction, sys_sigaction);
+PREALIASx(rt_sigaction, sys_sigaction);
+POSTALIASx(rt_sigaction, sys_sigaction);
PRE(sigprocmask)
@@ -5418,11 +5425,11 @@ PREx(sys_sigpending, NBRunInLWP)
}
-POST(sys_sigpending)
+POSTx(sys_sigpending)
{
POST_MEM_WRITE( arg1, sizeof( vki_old_sigset_t ) ) ;
}
-PREALIAS(rt_sigpending, sys_sigpending);
-POSTALIAS(rt_sigpending, sys_sigpending);
+PREALIASx(rt_sigpending, sys_sigpending);
+POSTALIASx(rt_sigpending, sys_sigpending);
PRE(io_setup)
@@ -5785,6 +5792,6 @@ struct sys_info {
void (*after) (ThreadId tid, ThreadState *tst);
};
-#define SYSB_(name, flags) [__NR_##name] = { flags, NULL, before_##name, NULL }
-#define SYSBA(name, flags) [__NR_##name] = { flags, NULL, before_##name, after_##name }
+#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 }
@@ -5912,21 +5919,21 @@ static const struct sys_info sys_info[]
SYSX_(__NR_setreuid, sys_setreuid16), // 70 ## (BSD4.3)
SYSX_(__NR_setregid, sys_setregid16), // 71 ## (BSD4.3)
- SYSB_(sigsuspend, MayBlock), // 72 sys_sigsuspend
+ SYSB_(__NR_sigsuspend, sys_sigsuspend, MayBlock), // 72
SYSXY(__NR_sigpending, sys_sigpending), // 73 * P
// (__NR_sethostname, sys_sethostname), // 74 * (almost P)
SYSX_(__NR_setrlimit, sys_setrlimit), // 75 * (SVr4,BSD4.3)
- SYSBA(getrlimit, 0), // 76 sys_old_getrlimit *
- SYSBA(getrusage, 0), // 77 sys_getrusage *
- SYSBA(gettimeofday, 0), // 78 sys_gettimeofday *
- SYSB_(settimeofday, 0), // 79 sys_settimeofday *
+ SYSBA(__NR_getrlimit, sys_old_getrlimit, 0), // 76 *
+ SYSBA(__NR_getrusage, sys_getrusage, 0), // 77 sys_getrusage *
+ SYSBA(__NR_gettimeofday, sys_gettimeofday, 0), // 78 *
+ SYSB_(__NR_settimeofday, sys_settimeofday, 0), // 79 *
- SYSBA(getgroups, 0), // 80 sys_getgroups16 ##
- SYSB_(setgroups, 0), // 81 sys_setgroups16 ##
- SYSB_(select, MayBlock), // 82 old_select
- SYSB_(symlink, MayBlock), // 83 sys_symlink *
+ SYSBA(__NR_getgroups, sys_getgroups16, 0), // 80 ##
+ SYSB_(__NR_setgroups, sys_setgroups16, 0), // 81 ##
+ SYSB_(__NR_select, old_select, MayBlock), // 82 old_select
+ SYSB_(__NR_symlink, sys_symlink, MayBlock), // 83 *
// (__NR_oldlstat, sys_lstat), // 84 * L -- obsolete
- SYSBA(readlink, 0), // 85 sys_readlink *
+ SYSBA(__NR_readlink, sys_readlink, 0), // 85 *
// (__NR_uselib, sys_uselib), // 86 * L
// (__NR_swapon, sys_swapon), // 87 * L
@@ -5934,52 +5941,53 @@ static const struct sys_info sys_info[]
// (__NR_readdir, old_readdir), // 89 () L -- superseded
- SYSB_(mmap, Special), // 90 old_mmap
- SYSBA(munmap, 0), // 91 sys_munmap *
- SYSB_(truncate, MayBlock), // 92 sys_truncate *
- SYSB_(ftruncate, MayBlock), // 93 sys_ftruncate *
- SYSB_(fchmod, 0), // 94 sys_fchmod *
+ SYSB_(__NR_mmap, old_mmap, Special), // 90 old_mmap
+ SYSBA(__NR_munmap, sys_munmap, 0), // 91 *
+ SYSB_(__NR_truncate, sys_truncate, MayBlock), // 92 *
+ SYSB_(__NR_ftruncate, sys_ftruncate, MayBlock), // 93 *
+ SYSB_(__NR_fchmod, sys_fchmod, 0), // 94 *
- SYSB_(fchown, 0), // 95 sys_fchown16 ##
- SYSB_(getpriority, 0), // 96 sys_getpriority *
- SYSB_(setpriority, 0), // 97 sys_setpriority *
+ SYSB_(__NR_fchown, sys_fchown16, 0), // 95 ##
+ SYSB_(__NR_getpriority, sys_getpriority, 0), // 96 *
+ SYSB_(__NR_setpriority, sys_setpriority, 0), // 97 *
// (__NR_profil, sys_ni_syscall), // 98 * P -- unimplemented
- SYSBA(statfs, 0), // 99 sys_statfs *
+ SYSBA(__NR_statfs, sys_statfs, 0), // 99 *
- SYSBA(fstatfs, 0), // 100 sys_fstatfs *
- SYSB_(ioperm, 0), // 101 sys_ioperm *
- SYSBA(socketcall, MayBlock), // 102 sys_socketcall *
- SYSBA(syslog, MayBlock), // 103 sys_syslog *
- SYSBA(setitimer, NBRunInLWP), // 104 sys_setitimer *
+ SYSBA(__NR_fstatfs, sys_fstatfs, 0), // 100 *
+ SYSB_(__NR_ioperm, sys_ioperm, 0), // 101 *
+ SYSBA(__NR_socketcall, sys_socketcall, MayBlock), // 102 *
+ SYSBA(__NR_syslog, sys_syslog, MayBlock), // 103 *
+ SYSBA(__NR_setitimer, sys_setitimer, NBRunInLWP), // 104 *
- SYSBA(getitimer, NBRunInLWP), // 105 sys_getitimer *
- SYSBA(stat, 0), // 106 sys_newstat *
- SYSBA(lstat, 0), // 107 sys_newlstat *
- SYSBA(fstat, 0), // 108 sys_newfstat *
+ SYSBA(__NR_getitimer, sys_getitimer, NBRunInLWP), // 105 *
+ SYSBA(__NR_stat, sys_newstat, 0), // 106 *
+ SYSBA(__NR_lstat, sys_newlstat, 0), // 107 *
+ SYSBA(__NR_fstat, sys_newfstat, 0), // 108 *
// (__NR_olduname, sys_uname), // 109 (?) L -- obsolete
- SYSB_(iopl, 0), // 110 sys_iopl
+ SYSB_(__NR_iopl, sys_iopl, 0), // 110
SYSX_(__NR_vhangup, sys_vhangup), // 111 * L
SYSX_(__NR_idle, sys_ni_syscall), // 112 * P -- unimplemented
// (__NR_vm86old, sys_vm86old), // 113 (x86) L
- SYSBA(wait4, MayBlock), // 114 sys_wait4 *
+ SYSBA(__NR_wait4, sys_wait4, MayBlock), // 114 *
// (__NR_swapoff, sys_swapoff), // 115 * L
- SYSBA(sysinfo, 0), // 116 sys_sysinfo *
- SYSBA(ipc, 0), // 117 sys_ipc
- SYSB_(fsync, MayBlock), // 118 sys_fsync *
+ SYSBA(__NR_sysinfo, sys_sysinfo, 0), // 116 *
+ SYSBA(__NR_ipc, sys_ipc, 0), // 117
+ SYSB_(__NR_fsync, sys_fsync, MayBlock), // 118 *
// (__NR_sigreturn, sys_sigreturn), // 119 () L
- SYSB_(clone, Special), // 120 sys_clone (very non-gen) L
+ SYSB_(__NR_clone, sys_clone, Special), // 120 (very non-gen) L
// (__NR_setdomainname, sys_setdomainname),// 121 * (non-P?)
SYSXY(__NR_uname, sys_newuname), // 122 * P
- SYSB_(modify_ldt, Special), // 123 sys_modify_ldt (x86,amd64) L
- SYSBA(adjtimex, 0), // 124 sys_adjtimex *
- SYSBA(mprotect, 0), // 125 sys_mprotect *
+ SYSB_(__NR_modify_ldt, sys_modify_ldt, Special), // 123 sys_modify_ldt (x86,amd64) L
+ SYSBA(__NR_adjtimex, sys_adjtimex, 0), // 124 *
- SYSBA(sigprocmask, SIG_SIM), // 126 sys_sigprocmask *
+ SYSBA(__NR_mprotect, sys_mprotect, 0), // 125 *
+ SYSBA(__NR_sigprocmask, sys_sigprocmask, SIG_SIM), // 126 *
// Nb: create_module() was removed 2.4-->2.6
SYSX_(__NR_create_module, sys_ni_syscall), // 127 * P -- unimplemented
- SYSB_(init_module, MayBlock), // 128 sys_init_module *
+ SYSB_(__NR_init_module, sys_init_module, MayBlock), // 128 *
// (__NR_delete_module, sys_delete_module),// 129 () (L?)
+
// Nb: get_kernel_syms() was removed 2.4-->2.6
SYSX_(__NR_get_kernel_syms, sys_ni_syscall), // 130 * P -- unimplemented
@@ -5984,87 +5992,86 @@ static const struct sys_info sys_info[]
// Nb: get_kernel_syms() was removed 2.4-->2.6
SYSX_(__NR_get_kernel_syms, sys_ni_syscall), // 130 * P -- unimplemented
-
- SYSB_(quotactl, 0), // 131 sys_quotactl *
- SYSB_(getpgid, 0), // 132 sys_getpgid *
- SYSB_(fchdir, 0), // 133 sys_fchdir *
+ SYSB_(__NR_quotactl, sys_quotactl, 0), // 131 *
+ SYSB_(__NR_getpgid, sys_getpgid, 0), // 132 *
+ SYSB_(__NR_fchdir, sys_fchdir, 0), // 133 *
// (__NR_bdflush, sys_bdflush), // 134 * L
- // (__NR_sysfs, sys_sysfs), // 135 * (SVr4)
- SYSB_(personality, 0), // 136 sys_personality *
+ // (__NR_sysfs, sys_sysfs), // 135 * (SVr4)
+ SYSB_(__NR_personality, sys_personality, 0), // 135 * (SVr4)
SYSX_(__NR_afs_syscall, sys_ni_syscall), // 137 * P
- SYSB_(setfsuid, 0), // 138 sys_setfsuid16 ##
- SYSB_(setfsgid, 0), // 139 sys_setfsgid16 ##
+ SYSB_(__NR_setfsuid, sys_setfsuid16, 0), // 138 ##
+ SYSB_(__NR_setfsgid, sys_setfsgid16, 0), // 139 ##
- SYSBA(_llseek, 0), // 140 sys_llseek *
- SYSBA(getdents, MayBlock), // 141 sys_getdents *
- SYSB_(_newselect, MayBlock), // 142 sys_select *
- SYSB_(flock, MayBlock), // 143 sys_flock *
- SYSB_(msync, MayBlock), // 144 sys_msync *
+ SYSBA(__NR__llseek, sys_llseek, 0), // 140 *
+ SYSBA(__NR_getdents, sys_getdents, MayBlock), // 141 *
+ SYSB_(__NR__newselect, sys_select, MayBlock), // 142 *
+ SYSB_(__NR_flock, sys_flock, MayBlock), // 143 *
+ SYSB_(__NR_msync, sys_msync, MayBlock), // 144 *
- SYSBA(readv, MayBlock), // 145 sys_readv *
- SYSB_(writev, MayBlock), // 146 sys_writev *
- SYSB_(getsid, 0), // 147 sys_getsid *
- SYSB_(fdatasync, MayBlock), // 148 sys_fdatasync *
- SYSBA(_sysctl, 0), // 149 sys_sysctl *
+ SYSBA(__NR_readv, sys_readv, MayBlock), // 145 *
+ SYSB_(__NR_writev, sys_writev, MayBlock), // 146 *
+ SYSB_(__NR_getsid, sys_getsid, 0), // 147 *
+ SYSB_(__NR_fdatasync, sys_fdatasync, MayBlock), // 148 *
+ SYSBA(__NR__sysctl, sys_sysctl, 0), // 149 *
- SYSB_(mlock, MayBlock), // 150 sys_mlock *
- SYSB_(munlock, MayBlock), // 151 sys_unlock *
- SYSB_(mlockall, MayBlock), // 152 sys_mlockall *
+ SYSB_(__NR_mlock, sys_mlock, MayBlock), // 150 *
+ SYSB_(__NR_munlock, sys_unlock, MayBlock), // 151 *
+ SYSB_(__NR_mlockall, sys_mlockall, MayBlock), // 152 *
SYSX_(__NR_munlockall, sys_munlockall), // 153 * P
- SYSBA(sched_setparam, 0/*???*/), // 154 sys_sched_setparam *
+ SYSBA(__NR_sched_setparam, sys_sched_setparam, 0/*???*/), // 154 *
- SYSBA(sched_getparam, 0/*???*/), // 155 sys_sched_getparam *
- SYSB_(sched_setscheduler, 0/*???*/), // 156 sys_sched_setscheduler *
- SYSB_(sched_getscheduler, 0/*???*/), // 157 sys_sched_getscheduler *
- SYSB_(sched_yield, 0/*???*/), // 158 sys_sched_yield *
- SYSB_(sched_get_priority_max,0/*???*/), // 159 sys_sched_get_priority_max *
+ SYSBA(__NR_sched_getparam, sys_sched_getparam, 0/*???*/), // 155 *
+ SYSB_(__NR_sched_setscheduler, sys_sched_setscheduler, 0/*???*/), // 156 *
+ SYSB_(__NR_sched_getscheduler, sys_sched_getscheduler, 0/*???*/), // 157 *
+ SYSB_(__NR_sched_yield, sys_sched_yield, 0/*???*/), // 158 *
+ SYSB_(__NR_sched_get_priority_max,sys_sched_get_priority_max, 0/*???*/), // 159 *
- SYSB_(sched_get_priority_min,0/*???*/), // 160 sys_sched_get_priority_min *
+ SYSB_(__NR_sched_get_priority_min,sys_sched_get_priority_min, 0/*???*/), // 160 *
// (__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 *
- SYSBA(nanosleep, MayBlock|PostOnFail), // 162 sys_nanosleep *
- SYSB_(mremap, Special), // 163 sys_mremap *
- SYSB_(setresuid, 0), // 164 sys_setresuid16 ##
+ SYSBA(__NR_nanosleep, sys_nanosleep, MayBlock|PostOnFail), // 162 *
+ SYSB_(__NR_mremap, sys_mremap, Special), // 163 *
+ SYSB_(__NR_setresuid, sys_setresuid16, 0), // 164 ##
- SYSBA(getresuid, 0), // 165 sys_getresuid16 ##
+ SYSBA(__NR_getresuid, sys_getresuid16, 0), // 165 ##
// (__NR_vm86, sys_vm86), // 166 (x86) L
SYSX_(__NR_query_module, sys_ni_syscall), // 167 * P -- unimplemented
- SYSBA(poll, MayBlock), // 168 sys_poll *
+ SYSBA(__NR_poll, sys_poll, MayBlock), // 168 *
// (__NR_nfsservctl, sys_nfsservctl), // 169 * L
- SYSB_(setresgid, 0), // 170 sys_setresgid16 ##
- SYSBA(getresgid, 0), // 171 sys_getresgid16 ##
- SYSB_(prctl, MayBlock), // 172 sys_prctl *
+ SYSB_(__NR_setresgid, sys_setresgid16, 0), // 170 ##
+ SYSBA(__NR_getresgid, sys_getresgid16, 0), // 171 ##
+ SYSB_(__NR_prctl, sys_prctl, MayBlock), // 172 *
// (__NR_rt_sigreturn, sys_rt_sigreturn), // 173 () ()
- SYSBA(rt_sigaction, SIG_SIM), // 174 sys_rt_sigaction
+ SYSBA(__NR_rt_sigaction, sys_rt_sigaction, SIG_SIM), // 174
- SYSBA(rt_sigprocmask, SIG_SIM), // 175 sys_rt_sigprocmask *
- SYSBA(rt_sigpending, NBRunInLWP), // 176 sys_rt_sigpending *
- SYSBA(rt_sigtimedwait, MayBlock), // 177 sys_rt_sigtimedwait *
- SYSBA(rt_sigqueueinfo, 0), // 178 sys_rt_sigqueueinfo *
- SYSB_(rt_sigsuspend, MayBlock), // 179 sys_sigsuspend
- SYSBA(pread64, MayBlock), // 180 sys_pread64 *
+ SYSBA(__NR_rt_sigprocmask, sys_rt_sigprocmask, SIG_SIM), // 175 *
+ SYSBA(__NR_rt_sigpending, sys_rt_sigpending, NBRunInLWP), // 176 *
+ SYSBA(__NR_rt_sigtimedwait, sys_rt_sigtimedwait, MayBlock), // 177 *
+ SYSBA(__NR_rt_sigqueueinfo, sys_rt_sigqueueinfo, 0), // 178 *
+ SYSB_(__NR_rt_sigsuspend, sys_sigsuspend, MayBlock), // 179
+ SYSBA(__NR_pread64, sys_pread64, MayBlock), // 180 *
- SYSB_(pwrite64, MayBlock), // 181 sys_pwrite64 *
- SYSB_(chown, 0), // 182 sys_chown16
- SYSBA(getcwd, 0), // 183 sys_getcwd *
- SYSBA(capget, 0), // 184 sys_capget *
+ SYSB_(__NR_pwrite64, sys_pwrite64, MayBlock), // 181 *
+ SYSB_(__NR_chown, sys_chown16, 0), // 182
+ SYSBA(__NR_getcwd, sys_getcwd, 0), // 183 *
+ SYSBA(__NR_capget, sys_capget, 0), // 184 *
- SYSB_(capset, 0), // 185 sys_capset *
- SYSBA(sigaltstack, SIG_SIM), // 186 sys_sigaltstack
- SYSBA(sendfile, MayBlock), // 187 sys_sendfile *
- SYSBA(getpmsg, MayBlock), // 188 sys_ni_syscall ...
- SYSB_(putpmsg, MayBlock), // 189 sys_ni_syscall ...
+ SYSB_(__NR_capset, sys_capset, 0), // 185 *
+ SYSBA(__NR_sigaltstack, sys_sigaltstack, SIG_SIM), // 186
+ SYSBA(__NR_sendfile, sys_sendfile, MayBlock), // 187 *
+ SYSBA(__NR_getpmsg, sys_ni_syscall, MayBlock), // 188 ...
+ SYSB_(__NR_putpmsg, sys_ni_syscall, MayBlock), // 189 ...
// Nb: we convert vfork() to fork() in VG_(pre_syscall)().
// (__NR_vfork, sys_vfork), // 190 -- Valgrind avoids
- SYSBA(ugetrlimit, 0), // 191 sys_getrlimit *
- SYSBA(mmap2, 0), // 192 sys_mmap2
- SYSB_(truncate64, MayBlock), // 193 sys_truncate64 %%
- SYSB_(ftruncate64, MayBlock), // 194 sys_ftruncate64 %%
+ SYSBA(__NR_ugetrlimit, sys_getrlimit, 0), // 191 *
+ SYSBA(__NR_mmap2, sys_mmap2, 0), // 192
+ SYSB_(__NR_truncate64, sys_truncate64, MayBlock), // 193 %%
+ SYSB_(__NR_ftruncate64, sys_ftruncate64, MayBlock), // 194 %%
- SYSBA(stat64, 0), // 195 sys_stat64 %%
- SYSBA(lstat64, 0), // 196 sys_lstat64 %%
- SYSBA(fstat64, 0), // 197 sys_fstat64 %%
- SYSB_(lchown32, 0), // 198 sys_lchown *
+ SYSBA(__NR_stat64, sys_stat64, 0), // 195 %%
+ SYSBA(__NR_lstat64, sys_lstat64, 0), // 196 %%
+ SYSBA(__NR_fstat64, sys_fstat64, 0), // 197 %%
+ SYSB_(__NR_lchown32, sys_lchown, 0), // 198 *
SYSX_(__NR_getuid32, sys_getuid), // 199 *
@@ -6075,27 +6082,26 @@ static const struct sys_info sys_info[]
SYSX_(__NR_setregid32, sys_setregid), // 204 * (BSD4.3)
- SYSBA(getgroups32, 0), // 205 sys_getgroups *
- SYSB_(setgroups32, 0), // 206 sys_setgroups *
- SYSB_(fchown32, 0), // 207 sys_fchown *
- SYSB_(setresuid32, 0), // 208 sys_setresuid *
- SYSBA(getresuid32, 0), // 209 sys_getresuid *
+ SYSBA(__NR_getgroups32, sys_getgroups, 0), // 205 *
+ SYSB_(__NR_setgroups32, sys_setgroups, 0), // 206 *
+ SYSB_(__NR_fchown32, sys_fchown, 0), // 207 *
+ SYSB_(__NR_setresuid32, sys_setresuid, 0), // 208 *
+ SYSBA(__NR_getresuid32, sys_getresuid, 0), // 209 *
- SYSB_(setresgid32, 0), // 210 sys_setresgid *
- SYSBA(getresgid32, 0), // 211 sys_getresgid *
- SYSB_(chown32, 0), // 212 sys_chown *
+ SYSB_(__NR_setresgid32, sys_setresgid, 0), // 210 *
+ SYSBA(__NR_getresgid32, sys_getresgid, 0), // 211 *
+ SYSB_(__NR_chown32, sys_chown, 0), // 212 *
SYSX_(__NR_setuid32, sys_setuid), // 213 *
SYSX_(__NR_setgid32, sys_setgid), // 214 * (SVr4,SVID)
- SYSB_(setfsuid32, 0), // 215 sys_setfsuid *
- SYSB_(setfsgid32, 0), // 216 sys_setfsgid *
+ SYSB_(__NR_setfsuid32, sys_setfsuid, 0), // 215 *
+ SYSB_(__NR_setfsgid32, sys_setfsgid, 0), // 216 *
// (__NR_pivot_root, sys_pivot_root), // 217 * L
- SYSBA(mincore, 0), // 218 sys_mincore *
- SYSB_(madvise, MayBlock), // 219 sys_madvise *
-
- SYSBA(getdents64, MayBlock), // 220 sys_getdents64 *
+ SYSBA(__NR_mincore, sys_mincore, 0), // 218 *
+ SYSB_(__NR_madvise, sys_madvise, MayBlock), // 219 *
+ SYSBA(__NR_getdents64, sys_getdents64, MayBlock), // 220 *
// XXX: This wrapped in a "#if BITS_PER_LONG == 32" in
// include/linux/syscalls.h...
- SYSBA(fcntl64, 0), // 221 sys_fcntl64 *
+ SYSBA(__NR_fcntl64, sys_fcntl64, 0), // 221 *
// Nb: 222 is reserved for TUX (whatever that means --njn)
SYSX_(222, sys_ni_syscall), // 222 * P -- reserved
@@ -6104,61 +6110,60 @@ static const struct sys_info sys_info[]
// (__NR_readahead, sys_readahead), // 225 * ()
- SYSB_(setxattr, MayBlock), // 226 sys_setxattr * L?
- SYSB_(lsetxattr, MayBlock), // 227 sys_lsetxattr * L?
- SYSB_(fsetxattr, MayBlock), // 228 sys_fsetxattr * L?
- SYSBA(getxattr, MayBlock), // 229 sys_getxattr * L?
+ SYSB_(__NR_setxattr, sys_setxattr, MayBlock), // 226 * L?
+ SYSB_(__NR_lsetxattr, sys_lsetxattr, MayBlock), // 227 * L?
+ SYSB_(__NR_fsetxattr, sys_fsetxattr, MayBlock), // 228 * L?
+ SYSBA(__NR_getxattr, sys_getxattr, MayBlock), // 229 * L?
- SYSBA(lgetxattr, MayBlock), // 230 sys_lgetxattr * L?
- SYSBA(fgetxattr, MayBlock), // 231 sys_fgetxattr * L?
- SYSBA(listxattr, MayBlock), // 232 sys_listxattr * L?
- SYSBA(llistxattr, MayBlock), // 233 sys_llistxattr * L?
- SYSBA(flistxattr, MayBlock), // 234 sys_flistxattr * L?
+ SYSBA(__NR_lgetxattr, sys_lgetxattr, MayBlock), // 230 * L?
+ SYSBA(__NR_fgetxattr, sys_fgetxattr, MayBlock), // 231 * L?
+ SYSBA(__NR_listxattr, sys_listxattr, MayBlock), // 232 * L?
+ SYSBA(__NR_llistxattr, sys_llistxattr, MayBlock), // 233 * L?
+ SYSBA(__NR_flistxattr, sys_flistxattr, MayBlock), // 234 * L?
- SYSB_(removexattr, MayBlock), // 235 sys_removexattr * L?
- SYSB_(lremovexattr, MayBlock), // 236 sys_lremovexattr * L?
- SYSB_(fremovexattr, MayBlock), // 237 sys_fremovexattr * L?
+ SYSB_(__NR_removexattr, sys_removexattr, MayBlock), // 235 * L?
+ SYSB_(__NR_lremovexattr, sys_lremovexattr, MayBlock), // 236 * L?
+ SYSB_(__NR_fremovexattr, sys_fremovexattr, MayBlock), // 237 * L?
// (__NR_tkill, sys_tkill), // 238 * L
- SYSBA(sendfile64, MayBlock), // 239 sys_sendfile64 *
+ SYSBA(__NR_sendfile64, sys_sendfile64, MayBlock), // 239 *
- SYSBA(futex, MayBlock), // 240 sys_futex *
- SYSB_(sched_setaffinity, 0), // 241 sys_sched_setaffinity *
- SYSBA(sched_getaffinity, 0), // 242 sys_sched_getaffinity *
- SYSB_(set_thread_area, Special), // 243 sys_set_thread_area
- SYSB_(get_thread_area, Special), // 244 sys_get_thread_area
+ SYSBA(__NR_futex, sys_futex, MayBlock), // 240 *
+ SYSB_(__NR_sched_setaffinity,sys_sched_setaffinity, 0), // 241 *
+ SYSBA(__NR_sched_getaffinity,sys_sched_getaffinity, 0), // 242 *
+ SYSB_(__NR_set_thread_area, sys_set_thread_area, Special), // 243
+ SYSB_(__NR_get_thread_area, sys_get_thread_area, Special), // 244
- SYSB_(io_setup, Special), // 245 sys_io_setup *
- SYSB_(io_destroy, Special), // 246 sys_io_destroy *
- SYSBA(io_getevents, MayBlock), // 247 sys_io_getevents *
- SYSB_(io_submit, 0), // 248 sys_io_submit *
- SYSBA(io_cancel, 0), // 249 sys_io_cancel *
+ 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 *
// (__NR_fadvise64, sys_fadvise64), // 250 * ()
- // Nb: 251 is unused
- SYSX_(251, sys_ni_syscall), // 251 * P
+ SYSX_(251, sys_ni_syscall), // 251 * P -- unused
SYSX_(__NR_exit_group, sys_exit_group), // 252 *
SYSXY(__NR_lookup_dcookie, sys_lookup_dcookie), // 253 (*/32/64) L
- SYSBA(epoll_create, 0), // 254 sys_epoll_create *
+ SYSBA(__NR_epoll_create, sys_epoll_create, 0), // 254 *
- SYSB_(epoll_ctl, 0), // 255 sys_epoll_ctl *
- SYSBA(epoll_wait, MayBlock), // 256 sys_epoll_wait *
+ SYSB_(__NR_epoll_ctl, sys_epoll_ctl, 0), // 255 *
+ SYSBA(__NR_epoll_wait, sys_epoll_wait, MayBlock), // 256 *
// (__NR_remap_file_pages, sys_remap_file_pages), // 257 * L
- SYSB_(set_tid_address, Special), // 258 sys_set_tid_address *
- SYSBA(timer_create, 0), // 259 sys_timer_create
+ SYSB_(__NR_set_tid_address, sys_set_tid_address, Special), // 258 *
+ SYSBA(__NR_timer_create, sys_timer_create, 0), // 259
- SYSBA(timer_settime, 0), // (timer_create+1) sys_timer_settime *
- SYSBA(timer_gettime, 0), // (timer_create+2) sys_timer_gettime *
- SYSB_(timer_getoverrun, 0), // (timer_create+3) sys_timer_getoverrun *
- SYSB_(timer_delete, 0), // (timer_create+4) sys_timer_delete *
- SYSB_(clock_settime, 0), // (timer_create+5) sys_clock_settime *
+ 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) *
- SYSBA(clock_gettime, 0), // (timer_create+6) sys_clock_gettime *
- SYSBA(clock_getres, 0), // (timer_create+7) sys_clock_getres *
+ 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?
- SYSBA(statfs64, 0), // 268 sys_statfs64 *
- SYSBA(fstatfs64, 0), // 269 sys_fstatfs64 *
+ SYSBA(__NR_statfs64, sys_statfs64, 0), // 268 *
+ SYSBA(__NR_fstatfs64, sys_fstatfs64, 0), // 269 *
// (__NR_tgkill, sys_tgkill), // 270 * ()
- SYSB_(utimes, 0), // 271 sys_utimes *
+ SYSB_(__NR_utimes, sys_utimes, 0), // 271 *
// (__NR_fadvise64_64, sys_fadvise64_64), // 272 * ()
@@ -6168,11 +6173,11 @@ static const struct sys_info sys_info[]
// (__NR_get_mempolicy, sys_get_mempolicy), // 275 () ()
// (__NR_set_mempolicy, sys_set_mempolicy), // 276 () ()
- SYSBA(mq_open, 0), // 277 sys_mq_open *
- SYSB_(mq_unlink, 0), // (mq_open+1) sys_mq_unlink *
- SYSB_(mq_timedsend, MayBlock), // (mq_open+2) sys_mq_timedsend *
+ 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) *
- SYSBA(mq_timedreceive, MayBlock), // (mq_open+3) sys_mq_timedreceive *
- SYSB_(mq_notify, 0), // (mq_open+4) sys_mq_notify *
- SYSBA(mq_getsetattr, 0), // (mq_open+5) sys_mq_getsetarr *
+ 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) *
SYSX_(__NR_sys_kexec_load, sys_ni_syscall), // 283 * P
};
@@ -6213,6 +6218,6 @@ Bool VG_(pre_syscall) ( ThreadId tid )
VG_(printf)("tid %d has syscall %d\n", tst->tid, tst->syscallno);
- vg_assert(tst->syscallno == -1); /* should be no current syscall */
- vg_assert(tst->status == VgTs_Runnable); /* should be runnable */
+ vg_assert(tst->syscallno == -1); // should be no current syscall
+ vg_assert(tst->status == VgTs_Runnable); // should be runnable */
/* the syscall no is in %eax. For syscalls with <= 6 args,
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 19:55:13
|
CVS commit by nethercote:
converted some more
M +37 -30 coregrind/vg_syscalls.c 1.187
M +2 -0 include/x86-linux/vki_arch.h 1.4
M +24 -6 memcheck/tests/scalar.c 1.18
M +85 -0 memcheck/tests/scalar.stderr.exp 1.16
--- valgrind/coregrind/vg_syscalls.c #1.186:1.187
@@ -1650,8 +1650,8 @@ PRE(setfsgid)
}
-PRE(setregid)
+PREx(sys_setregid16, 0)
{
- /* int setregid(gid_t rgid, gid_t egid); */
- PRINT("setregid ( %d, %d )", arg1, arg2);
+ PRINT("sys_setregid16 ( %d, %d )", arg1, arg2);
+ PRE_REG_READ2(long, "setregid16", vki_old_gid_t, rgid, vki_old_gid_t, egid);
}
@@ -4529,8 +4529,8 @@ POST(sys_setpgid)
}
-PRE(setregid32)
+PREx(sys_setregid, 0)
{
- /* int setregid(gid_t rgid, gid_t egid); */
- PRINT("setregid32(?) ( %d, %d )", arg1, arg2);
+ PRINT("sys_setregid ( %d, %d )", arg1, arg2);
+ PRE_REG_READ2(long, "setregid", vki_gid_t, rgid, vki_gid_t, egid);
}
@@ -4541,16 +4541,23 @@ PRE(setresuid32)
}
-PRE(setreuid)
+PREx(sys_setreuid16, 0)
{
- /* int setreuid(uid_t ruid, uid_t euid); */
- PRINT("setreuid ( 0x%x, 0x%x )", arg1, arg2);
+ PRINT("setreuid16 ( 0x%x, 0x%x )", arg1, arg2);
+ PRE_REG_READ2(long, "setreuid16", vki_old_uid_t, ruid, vki_old_uid_t, euid);
+}
+
+PREx(sys_setreuid, 0)
+{
+ PRINT("sys_setreuid ( 0x%x, 0x%x )", arg1, arg2);
+ PRE_REG_READ2(long, "setreuid", vki_uid_t, ruid, vki_uid_t, euid);
}
PREALIAS(setreuid32, setreuid);
-PRE(setrlimit)
+PREx(sys_setrlimit, 0)
{
- /* int setrlimit (int resource, const struct rlimit *rlim); */
- PRINT("setrlimit ( %d, %p )", arg1,arg2);
+ PRINT("sys_setrlimit ( %d, %p )", arg1,arg2);
+ PRE_REG_READ2(long, "setrlimit",
+ unsigned int, resource, struct rlimit *, rlim);
PRE_MEM_READ( "setrlimit(rlim)", arg2, sizeof(struct vki_rlimit) );
@@ -5404,18 +5411,18 @@ PREALIAS(rt_sigprocmask, sigprocmask);
POSTALIAS(rt_sigprocmask, sigprocmask);
-PRE(sigpending)
+PREx(sys_sigpending, NBRunInLWP)
{
- /* int sigpending( sigset_t *set ) ; */
- PRINT( "sigpending ( %p )", arg1 );
- PRE_MEM_WRITE( "sigpending(set)", arg1, sizeof(vki_sigset_t));
+ PRINT( "sys_sigpending ( %p )", arg1 );
+ PRE_REG_READ1(long, "sigpending", vki_old_sigset_t *, set);
+ PRE_MEM_WRITE( "sigpending(set)", arg1, sizeof(vki_old_sigset_t));
}
-POST(sigpending)
+POST(sys_sigpending)
{
- POST_MEM_WRITE( arg1, sizeof( vki_sigset_t ) ) ;
+ POST_MEM_WRITE( arg1, sizeof( vki_old_sigset_t ) ) ;
}
-PREALIAS(rt_sigpending, sigpending);
-POSTALIAS(rt_sigpending, sigpending);
+PREALIAS(rt_sigpending, sys_sigpending);
+POSTALIAS(rt_sigpending, sys_sigpending);
PRE(io_setup)
@@ -5903,11 +5910,11 @@ static const struct sys_info sys_info[]
// (__NR_ssetmask, sys_ssetmask), // 69 * (ANSI C)
- SYSB_(setreuid, 0), // 70 sys_setreuid16 ##
- SYSB_(setregid, 0), // 71 sys_setregid16 ##
+ SYSX_(__NR_setreuid, sys_setreuid16), // 70 ## (BSD4.3)
+ SYSX_(__NR_setregid, sys_setregid16), // 71 ## (BSD4.3)
SYSB_(sigsuspend, MayBlock), // 72 sys_sigsuspend
- SYSBA(sigpending, NBRunInLWP), // 73 sys_sigpending *
+ SYSXY(__NR_sigpending, sys_sigpending), // 73 * P
// (__NR_sethostname, sys_sethostname), // 74 * (almost P)
- SYSB_(setrlimit, 0), // 75 sys_setrlimit *
+ SYSX_(__NR_setrlimit, sys_setrlimit), // 75 * (SVr4,BSD4.3)
SYSBA(getrlimit, 0), // 76 sys_old_getrlimit *
SYSBA(getrusage, 0), // 77 sys_getrusage *
@@ -6065,6 +6072,6 @@ static const struct sys_info sys_info[]
SYSX_(__NR_geteuid32, sys_geteuid), // 201 *
SYSX_(__NR_getegid32, sys_getegid), // 202 *
- SYSB_(setreuid32, 0), // 203 sys_setreuid *
- SYSB_(setregid32, 0), // 204 sys_setregid *
+ SYSX_(__NR_setreuid32, sys_setreuid), // 203 * (BSD4.3)
+ SYSX_(__NR_setregid32, sys_setregid), // 204 * (BSD4.3)
SYSBA(getgroups32, 0), // 205 sys_getgroups *
--- valgrind/include/x86-linux/vki_arch.h #1.3:1.4
@@ -89,4 +89,6 @@ typedef __vki_restorefn_t __user *__vki_
#define _VKI_NSIG_WORDS (_VKI_NSIG / _VKI_NSIG_BPW)
+typedef unsigned long vki_old_sigset_t; /* at least 32 bits */
+
typedef struct {
unsigned long sig[_VKI_NSIG_WORDS];
--- valgrind/memcheck/tests/scalar.c #1.17:1.18
@@ -273,5 +273,5 @@ int main(void)
SY(__NR_setsid);
- // __NR_sigaction 67
+ // __NR_sigaction 67 --> sys_sigaction()
GO(__NR_sigaction, "3s 2m");
SY(__NR_sigaction, x0, x0+1, x0+1);
@@ -283,13 +283,25 @@ int main(void)
// (Not yet handled by Valgrind)
- // __NR_setreuid 70
- // __NR_setregid 71
- // __NR_sigsuspend 72
- // __NR_sigpending 73
+ // __NR_setreuid 70 --> sys_setreuid16()
+ GO(__NR_setreuid, "2s 0m");
+ SY(__NR_setreuid, x0, x0);
+
+ // __NR_setregid 71 --> sys_setregid16()
+ GO(__NR_setregid, "2s 0m");
+ SY(__NR_setregid, x0, x0);
+
+ // __NR_sigsuspend 72 --> sys_sigsuspend()
+
+ // __NR_sigpending 73 --> sys_sigpending()
+ GO(__NR_sigpending, "1s 1m");
+ SY(__NR_sigpending, x0);
// __NR_sethostname 74
// (Not yet handled by Valgrind)
- // __NR_setrlimit 75
+ // __NR_setrlimit 75 --> sys_setrlimit()
+ GO(__NR_setrlimit, "2s 1m");
+ SY(__NR_setrlimit, x0, x0);
+
// __NR_getrlimit 76
// __NR_getrusage 77
@@ -479,5 +491,11 @@ int main(void)
// __NR_setreuid32 203
+ GO(__NR_setreuid32, "2s 0m");
+ SY(__NR_setreuid32, x0, x0);
+
// __NR_setregid32 204
+ GO(__NR_setregid32, "2s 0m");
+ SY(__NR_setregid32, x0, x0);
+
// __NR_getgroups32 205
// __NR_setgroups32 206
--- valgrind/memcheck/tests/scalar.stderr.exp #1.15:1.16
@@ -770,4 +770,63 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+ 70: __NR_setreuid 2s 0m
+-----------------------------------------------------
+
+Syscall param setreuid16(ruid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setreuid16(euid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+ 71: __NR_setregid 2s 0m
+-----------------------------------------------------
+
+Syscall param setregid16(rgid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setregid16(egid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+ 73: __NR_sigpending 1s 1m
+-----------------------------------------------------
+
+Syscall param sigpending(set) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param sigpending(set) 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
+-----------------------------------------------------
+ 75: __NR_setrlimit 2s 1m
+-----------------------------------------------------
+
+Syscall param setrlimit(resource) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setrlimit(rlim) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setrlimit(rlim) 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
+-----------------------------------------------------
111: __NR_vhangup 0e
-----------------------------------------------------
@@ -817,4 +876,30 @@
-----------------------------------------------------
-----------------------------------------------------
+203: __NR_setreuid32 2s 0m
+-----------------------------------------------------
+
+Syscall param setreuid(ruid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setreuid(euid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+204: __NR_setregid32 2s 0m
+-----------------------------------------------------
+
+Syscall param setregid(rgid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setregid(egid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
213: __NR_setuid32 1s 0m
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 18:49:52
|
CVS commit by nethercote: wibble M +1 -1 vg_syscalls.c 1.186 |
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 18:49:29
|
CVS commit by nethercote:
and converted a few more
M +25 -23 coregrind/vg_syscalls.c 1.185
M +26 -0 memcheck/tests/scalar.c 1.17
M +57 -0 memcheck/tests/scalar.stderr.exp 1.15
--- valgrind/coregrind/vg_syscalls.c #1.184:1.185
@@ -1524,8 +1524,8 @@ PRE(personality)
}
-PRE(chroot)
+PREx(sys_chroot, 0)
{
- /* int chroot(const char *path); */
- PRINT("chroot ( %p )", arg1);
+ PRINT("sys_chroot ( %p )", arg1);
+ PRE_REG_READ1(long, "chroot", const char *, path);
PRE_MEM_RASCIIZ( "chroot(path)", arg1 );
}
@@ -2042,15 +2042,15 @@ POST(sys_dup)
}
-PRE(dup2)
+PREx(sys_dup2, 0)
{
- /* int dup2(int oldfd, int newfd); */
- PRINT("dup2 ( %d, %d )", arg1,arg2);
+ PRINT("sys_dup2 ( %d, %d )", arg1,arg2);
+ PRE_REG_READ2(long, "dup2", unsigned int, oldfd, unsigned int, newfd);
if (!fd_allowed(arg2, "dup2", tid, True))
set_result( -VKI_EBADF );
}
-POST(dup2)
+POST(sys_dup2)
{
- if(VG_(clo_track_fds))
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, VG_(resolve_filename)(res));
}
@@ -5353,9 +5353,11 @@ POST(sigaltstack)
}
-PRE(sigaction)
+// XXX: x86-specific
+PREx(sys_sigaction, SIG_SIM)
{
- /* int sigaction(int signum, struct k_sigaction *act,
- struct k_sigaction *oldact); */
- PRINT("sigaction ( %d, %p, %p )",arg1,arg2,arg3);
+ PRINT("sys_sigaction ( %d, %p, %p )", arg1,arg2,arg3);
+ PRE_REG_READ3(int, "sigaction",
+ int, signum, const struct old_sigaction *, act,
+ struct old_sigaction *, oldact)
if (arg2 != (UWord)NULL)
PRE_MEM_READ( "sigaction(act)", arg2, sizeof(struct vki_sigaction));
@@ -5367,5 +5369,5 @@ PRE(sigaction)
}
-POST(sigaction)
+POST(sys_sigaction)
{
if (res == 0 && arg3 != (UWord)NULL)
@@ -5373,6 +5375,6 @@ POST(sigaction)
}
-PREALIAS(rt_sigaction, sigaction);
-POSTALIAS(rt_sigaction, sigaction);
+PREALIAS(rt_sigaction, sys_sigaction);
+POSTALIAS(rt_sigaction, sys_sigaction);
PRE(sigprocmask)
@@ -5890,12 +5892,12 @@ static const struct sys_info sys_info[]
SYSX_(__NR_umask, sys_umask), // 60 * P
- SYSB_(chroot, 0), // 61 sys_chroot *
- // (__NR_ustat, sys_ustat) // 62 * (SVr4, deprecated)
- SYSBA(dup2, 0), // 63 sys_dup2 *
- SYSX_(__NR_getppid, sys_getppid), // 64 *
+ SYSX_(__NR_chroot, sys_chroot), // 61 * (almost P)
+ // (__NR_ustat, sys_ustat) // 62 * (SVr4) -- deprecated
+ SYSXY(__NR_dup2, sys_dup2), // 63 * P
+ SYSX_(__NR_getppid, sys_getppid), // 64 * P
- SYSX_(__NR_getpgrp, sys_getpgrp), // 65 *
- SYSX_(__NR_setsid, sys_setsid), // 66 *
- SYSBA(sigaction, SIG_SIM), // 67 sys_sigaction
+ SYSX_(__NR_getpgrp, sys_getpgrp), // 65 * P
+ SYSX_(__NR_setsid, sys_setsid), // 66 * P
+ SYSXY(__NR_sigaction, sys_sigaction), // 67 (x86) P
// (__NR_sgetmask, sys_sgetmask), // 68 * (ANSI C)
// (__NR_ssetmask, sys_ssetmask), // 69 * (ANSI C)
--- valgrind/memcheck/tests/scalar.c #1.16:1.17
@@ -251,6 +251,13 @@ int main(void)
// __NR_chroot 61
+ GO(__NR_chroot, "1s 1m");
+ SY(__NR_chroot, x0);
+
// __NR_ustat 62
+ // (deprecated, not handled by Valgrind)
+
// __NR_dup2 63
+ GO(__NR_dup2, "2s 0m");
+ SY(__NR_dup2, x0, x0);
// __NR_getppid 64 --> sys_getppid()
@@ -267,6 +274,13 @@ int main(void)
// __NR_sigaction 67
+ GO(__NR_sigaction, "3s 2m");
+ SY(__NR_sigaction, x0, x0+1, x0+1);
+
// __NR_sgetmask 68
+ // (Not yet handled by Valgrind)
+
// __NR_ssetmask 69
+ // (Not yet handled by Valgrind)
+
// __NR_setreuid 70
// __NR_setregid 71
@@ -273,5 +287,8 @@ int main(void)
// __NR_sigsuspend 72
// __NR_sigpending 73
+
// __NR_sethostname 74
+ // (Not yet handled by Valgrind)
+
// __NR_setrlimit 75
// __NR_getrlimit 76
@@ -288,8 +305,17 @@ int main(void)
// __NR_readlink 85
+
// __NR_uselib 86
+ // (Not yet handled by Valgrind)
+
// __NR_swapon 87
+ // (Not yet handled by Valgrind)
+
// __NR_reboot 88
+ // (Not yet handled by Valgrind)
+
// __NR_readdir 89
+ // (superseded, not handled by Valgrind)
+
// __NR_mmap 90
// __NR_munmap 91
--- valgrind/memcheck/tests/scalar.stderr.exp #1.14:1.15
@@ -704,4 +704,31 @@
by 0x........: ...
-----------------------------------------------------
+ 61: __NR_chroot 1s 1m
+-----------------------------------------------------
+
+Syscall param chroot(path) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param chroot(path) 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
+-----------------------------------------------------
+ 63: __NR_dup2 2s 0m
+-----------------------------------------------------
+
+Syscall param dup2(oldfd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param dup2(newfd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
64: __NR_getppid 0e
-----------------------------------------------------
@@ -713,4 +740,34 @@
-----------------------------------------------------
-----------------------------------------------------
+ 67: __NR_sigaction 3s 2m
+-----------------------------------------------------
+
+Syscall param sigaction(signum) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param sigaction(act) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param sigaction(oldact) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param sigaction(act) 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 sigaction(oldact) 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
+-----------------------------------------------------
111: __NR_vhangup 0e
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 18:21:19
|
CVS commit by nethercote:
renamed variables
M +45 -49 scalar.c 1.16
--- valgrind/memcheck/tests/scalar.c #1.15:1.16
@@ -3,11 +3,7 @@
int main(void)
{
- // uninitialised, but we know pi[0] is 0x0
- int* pi = malloc(sizeof(int));
- int i0 = pi[0];
-
- // uninitialised, but we know pc[0] points to 0x0
- char** pc = malloc(sizeof(char*));
- char* s0 = pc[0];
+ // uninitialised, but we know px[0] is 0x0
+ long* px = malloc(sizeof(long));
+ long x0 = px[0];
// All __NR_xxx numbers are taken from x86
@@ -24,58 +20,58 @@ 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+i0, i0, s0, i0+1);
+ SY(__NR_read+x0, x0, x0, x0+1);
// __NR_write 4 --> sys_write()
GO(__NR_write, "3s 1m");
- SY(__NR_write, i0, s0, i0+1);
+ SY(__NR_write, x0, x0, x0+1);
// __NR_open 5 --> sys_open()
GO(__NR_open, "(2-args) 2s 1m");
- SY(__NR_open, s0, i0, i0+1);
+ SY(__NR_open, x0, x0, x0+1);
GO(__NR_open, "(3-args) 1s 0m");
- SY(__NR_open, "tmp_write_file_foo", O_CREAT, i0);
+ SY(__NR_open, "tmp_write_file_foo", O_CREAT, x0);
// __NR_close 6 --> sys_close()
GO(__NR_close, "1s 0m");
- SY(__NR_close, i0-1);
+ SY(__NR_close, x0-1);
// __NR_waitpid 7 --> sys_waitpid()
GO(__NR_waitpid, "3s 1m");
- SY(__NR_waitpid, i0-1);
+ SY(__NR_waitpid, x0-1);
// __NR_creat 8 --> sys_creat()
GO(__NR_creat, "2s 1m");
- SY(__NR_creat, s0, i0);
+ SY(__NR_creat, x0, x0);
// __NR_link 9 --> sys_link()
GO(__NR_link, "2s 2m");
- SY(__NR_link, s0, s0);
+ SY(__NR_link, x0, x0);
// __NR_unlink 10 --> sys_unlink()
GO(__NR_unlink, "1s 1m");
- SY(__NR_unlink, s0);
+ SY(__NR_unlink, x0);
// __NR_execve 11 --> sys_execve()
- // Nb: could have 3 memory errors if we pass s0+1 as the 2nd and 3rd
+ // Nb: could have 3 memory errors if we pass x0+1 as the 2nd and 3rd
// args, except for bug #93174.
GO(__NR_execve, "3s 1m");
- SY(__NR_execve, s0, s0, s0);
+ SY(__NR_execve, x0, x0, x0);
// __NR_chdir 12 --> sys_chdir()
GO(__NR_chdir, "1s 1m");
- SY(__NR_chdir, s0);
+ SY(__NR_chdir, x0);
// __NR_time 13 --> sys_time()
GO(__NR_time, "1s 1m");
- SY(__NR_time, s0+1);
+ SY(__NR_time, x0+1);
// __NR_mknod 14 --> sys_mknod()
GO(__NR_mknod, "3s 1m");
- SY(__NR_mknod, s0, i0, i0);
+ SY(__NR_mknod, x0, x0, x0);
// __NR_chmod 15 --> sys_chmod()
GO(__NR_chmod, "2s 1m");
- SY(__NR_chmod, s0, i0);
+ SY(__NR_chmod, x0, x0);
// __NR_lchown 16
@@ -91,5 +87,5 @@ int main(void)
// __NR_lseek 19 --> sys_lseek()
GO(__NR_lseek, "3s 0m");
- SY(__NR_lseek, i0, i0, i0);
+ SY(__NR_lseek, x0, x0, x0);
// __NR_getpid 20 --> sys_getpid()
@@ -99,13 +95,13 @@ int main(void)
// __NR_mount 21 --> sys_mount()
GO(__NR_mount, "5s 3m");
- SY(__NR_mount, s0, s0, s0, i0, s0);
+ SY(__NR_mount, x0, x0, x0, x0, x0);
// __NR_umount 22 --> sys_oldumount()
GO(__NR_umount, "1s 1m");
- SY(__NR_umount, s0);
+ SY(__NR_umount, x0);
// __NR_setuid 23 --> sys_setuid16()
GO(__NR_setuid, "1s 0m");
- SY(__NR_setuid, i0);
+ SY(__NR_setuid, x0);
// __NR_getuid 24 --> sys_getuid16()
@@ -119,9 +115,9 @@ int main(void)
// XXX: memory pointed to be arg3 is never checked...
GO(__NR_ptrace, "4s 2m");
- SY(__NR_ptrace, i0+PTRACE_GETREGS, i0, s0, s0);
+ SY(__NR_ptrace, x0+PTRACE_GETREGS, x0, x0, x0);
// __NR_alarm 27 --> sys_alarm()
GO(__NR_alarm, "1s 0m");
- SY(__NR_alarm, i0);
+ SY(__NR_alarm, x0);
// __NR_oldfstat 28
@@ -133,5 +129,5 @@ int main(void)
// __NR_utime 30 --> sys_utime()
GO(__NR_utime, "2s 2m");
- SY(__NR_utime, s0, s0+1);
+ SY(__NR_utime, x0, x0+1);
// __NR_stty 31 --> sys_ni_syscall()
@@ -145,9 +141,9 @@ int main(void)
// __NR_access 33 --> sys_access()
GO(__NR_access, "2s 1m");
- SY(__NR_access, s0, i0);
+ SY(__NR_access, x0, x0);
// __NR_nice 34 --> sys_nice()
GO(__NR_nice, "1s 0m");
- SY(__NR_nice, i0);
+ SY(__NR_nice, x0);
// __NR_ftime 35 --> sys_ni_syscall()
@@ -161,29 +157,29 @@ int main(void)
// __NR_kill 37 --> sys_kill()
GO(__NR_kill, "2s 0m");
- SY(__NR_kill, i0, i0);
+ SY(__NR_kill, x0, x0);
// __NR_rename 38 --> sys_rename()
GO(__NR_rename, "2s 2m");
- SY(__NR_rename, s0, s0);
+ SY(__NR_rename, x0, x0);
// __NR_mkdir 39 --> sys_mkdir()
GO(__NR_mkdir, "2s 1m");
- SY(__NR_mkdir, s0, i0);
+ SY(__NR_mkdir, x0, x0);
// __NR_rmdir 40 --> sys_rmdir()
GO(__NR_rmdir, "1s 1m");
- SY(__NR_rmdir, s0);
+ SY(__NR_rmdir, x0);
// __NR_dup 41 --> sys_dup()
GO(__NR_dup, "1s 0m");
- SY(__NR_dup, i0);
+ SY(__NR_dup, x0);
// __NR_pipe 42 --> arch/sys_pipe()
GO(__NR_pipe, "1s 1m");
- SY(__NR_pipe, s0);
+ SY(__NR_pipe, x0);
// __NR_times 43 --> sys_times()
GO(__NR_times, "1s 1m");
- SY(__NR_times, s0);
+ SY(__NR_times, x0);
// __NR_prof 44 --> sys_ni_syscall()
@@ -193,5 +189,5 @@ int main(void)
// __NR_brk 45 --> sys_brk()
GO(__NR_brk, "1s 0m");
- SY(__NR_brk, i0);
+ SY(__NR_brk, x0);
// __NR_setgid 46 --> sys_setgid16()
@@ -216,9 +212,9 @@ int main(void)
// __NR_acct 51 --> sys_acct()
GO(__NR_acct, "1s 1m");
- SY(__NR_acct, s0);
+ SY(__NR_acct, x0);
// __NR_umount2 52 --> sys_umount()
GO(__NR_umount2, "2s 1m");
- SY(__NR_umount2, s0, i0);
+ SY(__NR_umount2, x0, x0);
// __NR_lock 53 --> sys_ni_syscall()
@@ -229,9 +225,9 @@ int main(void)
#include <asm/ioctls.h>
GO(__NR_ioctl, "3s 1m");
- SY(__NR_ioctl, i0, i0+TCSETS, s0);
+ SY(__NR_ioctl, x0, x0+TCSETS, x0);
// __NR_fcntl 55 --> sys_fcntl()
GO(__NR_fcntl, "3s 0m");
- SY(__NR_fcntl, i0, i0, i0);
+ SY(__NR_fcntl, x0, x0, x0);
// __NR_mpx 56 --> sys_ni_syscall()
@@ -241,5 +237,5 @@ int main(void)
// __NR_setpgid 57
GO(__NR_setpgid, "2s 0m");
- SY(__NR_setpgid, i0, i0);
+ SY(__NR_setpgid, x0, x0);
// __NR_ulimit 58 --> sys_ni_syscall()
@@ -252,5 +248,5 @@ int main(void)
// __NR_umask 60
GO(__NR_umask, "1s 0m");
- SY(__NR_umask, i0);
+ SY(__NR_umask, x0);
// __NR_chroot 61
@@ -341,5 +337,5 @@ int main(void)
// __NR_uname 122
GO(__NR_uname, "1s 1m");
- SY(__NR_uname, s0);
+ SY(__NR_uname, x0);
// __NR_modify_ldt 123
@@ -469,5 +465,5 @@ int main(void)
// __NR_setuid32 213 --> sys_setuid()
GO(__NR_setuid32, "1s 0m");
- SY(__NR_setuid32, i0);
+ SY(__NR_setuid32, x0);
// __NR_setgid32 214
@@ -529,5 +525,5 @@ int main(void)
// __NR_lookup_dcookie 253 --> sys_lookup_dcookie()
GO(__NR_lookup_dcookie, "4s 1m");
- SY(__NR_lookup_dcookie, i0, i0, s0, i0+1);
+ SY(__NR_lookup_dcookie, x0, x0, x0, x0+1);
// __NR_epoll_create 254
@@ -574,5 +570,5 @@ int main(void)
// __NR_exit 1 --> sys_exit()
GO(__NR_exit, "1s 0m");
- SY(__NR_exit, i0);
+ SY(__NR_exit, x0);
assert(0);
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 18:20:23
|
CVS commit by nethercote:
converted some more
M +49 -54 coregrind/vg_syscalls.c 1.184
M +37 -12 memcheck/tests/scalar.c 1.15
M +101 -0 memcheck/tests/scalar.stderr.exp 1.14
--- valgrind/coregrind/vg_syscalls.c #1.183:1.184
@@ -1065,4 +1065,9 @@ static Bool fd_allowed(Int fd, const Cha
ambiguity.
+ 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
+ they don't need to be -- eg. for "foo*" to be used, the type foo need not
+ be visible.
+
XXX: some of these are arch-specific, and should be factored out.
*/
@@ -1939,5 +1944,5 @@ PREx(sys_alarm, NBRunInLWP)
}
-PRE(brk)
+PREx(sys_brk, Special)
{
Addr brk_limit = VG_(brk_limit);
@@ -1958,5 +1963,6 @@ PRE(brk)
Both will seg fault if you shrink it back into a text segment.
*/
- PRINT("brk ( %p )",arg1);
+ PRINT("sys_brk ( %p )", arg1);
+ PRE_REG_READ1(unsigned long, "brk", unsigned long, end_data_segment);
set_result( do_brk(arg1) );
@@ -2050,13 +2056,14 @@ POST(dup2)
}
-PRE(fcntl)
+PREx(sys_fcntl, 0)
{
- /* int fcntl(int fd, int cmd, int arg); */
- PRINT("fcntl ( %d, %d, %d )",arg1,arg2,arg3);
+ PRINT("sys_fcntl ( %d, %d, %d )", arg1,arg2,arg3);
+ PRE_REG_READ3(long, "fcntl",
+ unsigned int, fd, unsigned int, cmd, unsigned long, arg);
if (arg2 == VKI_F_SETLKW)
tst->sys_flags |= MayBlock;
}
-POST(fcntl)
+POST(sys_fcntl)
{
if (arg2 == VKI_F_DUPFD) {
@@ -2909,17 +2916,10 @@ POST(ipc)
}
-PRE(ioctl)
+PREx(sys_ioctl, MayBlock)
{
- /* int ioctl(int d, int request, ...)
- [The "third" argument is traditionally char *argp,
- and will be so named for this discussion.]
- */
- /*
- VG_(message)(
- Vg_DebugMsg,
- "is an IOCTL, request = 0x%x, d = %d, argp = 0x%x",
- arg2,arg1,arg3);
- */
- PRINT("ioctl ( %d, 0x%x, %p )",arg1,arg2,arg3);
+ PRINT("sys_ioctl ( %d, 0x%x, %p )",arg1,arg2,arg3);
+ PRE_REG_READ3(long, "ioctl",
+ unsigned int, fd, unsigned int, request, unsigned long, arg);
+
switch (arg2 /* request */) {
case VKI_TCSETS:
@@ -3510,17 +3510,6 @@ PRE(ioctl)
}
-POST(ioctl)
+POST(sys_ioctl)
{
- /* int ioctl(int d, int request, ...)
- [The "third" argument is traditionally char *argp,
- and will be so named for this discussion.]
- */
- /*
- VG_(message)(
- Vg_DebugMsg,
- "is an IOCTL, request = 0x%x, d = %d, argp = 0x%x",
- arg2,arg1,arg3);
- */
- PRINT("ioctl ( %d, 0x%x, %p )",arg1,arg2,arg3);
switch (arg2 /* request */) {
case VKI_TCSETS:
@@ -4499,8 +4488,14 @@ PRE(setfsgid32)
}
-PRE(setgid)
+PREx(sys_setgid16, 0)
{
- /* int setgid(gid_t gid); */
- PRINT("setgid ( %d )", arg1);
+ PRINT("sys_setgid16 ( %d )", arg1);
+ PRE_REG_READ1(long, "setgid16", vki_old_gid_t, gid);
+}
+
+PREx(sys_setgid, 0)
+{
+ PRINT("sys_setgid ( %d )", arg1);
+ PRE_REG_READ1(long, "setgid", vki_gid_t, gid);
}
@@ -4523,11 +4518,11 @@ PRE(setgroups)
PREALIAS(setgroups32, setgroups);
-PRE(setpgid)
+PREx(sys_setpgid, 0)
{
- /* int setpgid(pid_t pid, pid_t pgid); */
PRINT("setpgid ( %d, %d )", arg1, arg2);
+ PRE_REG_READ2(long, "setpgid", vki_pid_t, pid, vki_pid_t, pgid);
}
-POST(setpgid)
+POST(sys_setpgid)
{
VG_(main_pgrp) = VG_(getpgrp)();
@@ -5068,12 +5063,12 @@ POST(sys_time)
}
-PRE(times)
+PREx(sys_times, 0)
{
- /* clock_t times(struct tms *buf); */
- PRINT("times ( %p )",arg1);
+ PRINT("sys_times ( %p )", arg1);
+ PRE_REG_READ1(long, "times", struct tms *, buf);
PRE_MEM_WRITE( "times(buf)", arg1, sizeof(struct vki_tms) );
}
-POST(times)
+POST(sys_times)
{
if (arg1 != (UWord)NULL) {
@@ -5089,8 +5084,8 @@ PRE(truncate)
}
-PRE(umask)
+PREx(sys_umask, 0)
{
- /* mode_t umask(mode_t mask); */
- PRINT("umask ( %d )", arg1);
+ PRINT("sys_umask ( %d )", arg1);
+ PRE_REG_READ1(long, "umask", int, mask);
}
@@ -5873,9 +5868,9 @@ static const struct sys_info sys_info[]
SYSXY(__NR_dup, sys_dup), // 41 * P
SYSXY(__NR_pipe, sys_pipe), // 42 (x86) P
- SYSBA(times, 0), // 43 sys_times *
+ SYSXY(__NR_times, sys_times), // 43 * P
SYSX_(__NR_prof, sys_ni_syscall), // 44 * P -- unimplemented
- SYSB_(brk, Special), // 45 sys_brk *
- SYSB_(setgid, 0), // 46 sys_setgid16 ##
+ SYSX_(__NR_brk, sys_brk), // 45 * non-P
+ SYSX_(__NR_setgid, sys_setgid16), // 46 ## (SVr4,SVID)
SYSX_(__NR_getgid, sys_getgid16), // 47 ## P
// (__NR_signal, sys_signal), // 48 * (ANSI C?)
@@ -5886,13 +5881,13 @@ static const struct sys_info sys_info[]
SYSX_(__NR_umount2, sys_umount), // 52 * L
SYSX_(__NR_lock, sys_ni_syscall), // 53 * P -- unimplemented
- SYSBA(ioctl, MayBlock), // 54 sys_ioctl *
+ SYSXY(__NR_ioctl, sys_ioctl), // 54 * (varying)
- SYSBA(fcntl, 0), // 55 sys_fcntl *
+ SYSXY(__NR_fcntl, sys_fcntl), // 55 * (P...complex)
SYSX_(__NR_mpx, sys_ni_syscall), // 56 * P -- unimplemented
- SYSBA(setpgid, 0), // 57 sys_setpgid *
+ SYSXY(__NR_setpgid, sys_setpgid), // 57 * P
SYSX_(__NR_ulimit, sys_ni_syscall), // 58 * P -- unimplemented
// (__NR_oldolduname, sys_olduname), // 59 (?) L -- obsolete
- SYSB_(umask, 0), // 60 sys_umask *
+ SYSX_(__NR_umask, sys_umask), // 60 * P
SYSB_(chroot, 0), // 61 sys_chroot *
// (__NR_ustat, sys_ustat) // 62 * (SVr4, deprecated)
@@ -6081,5 +6076,5 @@ static const struct sys_info sys_info[]
SYSB_(chown32, 0), // 212 sys_chown *
SYSX_(__NR_setuid32, sys_setuid), // 213 *
- SYSB_(setgid32, 0), // 214 sys_setgid *
+ SYSX_(__NR_setgid32, sys_setgid), // 214 * (SVr4,SVID)
SYSB_(setfsuid32, 0), // 215 sys_setfsuid *
--- valgrind/memcheck/tests/scalar.c #1.14:1.15
@@ -13,4 +13,7 @@ int main(void)
// All __NR_xxx numbers are taken from x86
+ // __NR_restart_syscall 1 XXX ???
+ // (see below)
+
// __NR_exit 1
// (see below)
@@ -144,5 +147,5 @@ int main(void)
SY(__NR_access, s0, i0);
- // __NR_nice 34
+ // __NR_nice 34 --> sys_nice()
GO(__NR_nice, "1s 0m");
SY(__NR_nice, i0);
@@ -156,29 +159,31 @@ int main(void)
SY(__NR_sync);
- // __NR_kill 37
+ // __NR_kill 37 --> sys_kill()
GO(__NR_kill, "2s 0m");
SY(__NR_kill, i0, i0);
- // __NR_rename 38
+ // __NR_rename 38 --> sys_rename()
GO(__NR_rename, "2s 2m");
SY(__NR_rename, s0, s0);
- // __NR_mkdir 39
+ // __NR_mkdir 39 --> sys_mkdir()
GO(__NR_mkdir, "2s 1m");
SY(__NR_mkdir, s0, i0);
- // __NR_rmdir 40
+ // __NR_rmdir 40 --> sys_rmdir()
GO(__NR_rmdir, "1s 1m");
SY(__NR_rmdir, s0);
- // __NR_dup 41
+ // __NR_dup 41 --> sys_dup()
GO(__NR_dup, "1s 0m");
SY(__NR_dup, i0);
- // __NR_pipe 42
+ // __NR_pipe 42 --> arch/sys_pipe()
GO(__NR_pipe, "1s 1m");
SY(__NR_pipe, s0);
- // __NR_times 43
+ // __NR_times 43 --> sys_times()
+ GO(__NR_times, "1s 1m");
+ SY(__NR_times, s0);
// __NR_prof 44 --> sys_ni_syscall()
@@ -186,6 +191,11 @@ int main(void)
SY(__NR_prof);
- // __NR_brk 45
- // __NR_setgid 46
+ // __NR_brk 45 --> sys_brk()
+ GO(__NR_brk, "1s 0m");
+ SY(__NR_brk, i0);
+
+ // __NR_setgid 46 --> sys_setgid16()
+ GO(__NR_setgid, "1s 0m");
+ SY(__NR_setgid);
// __NR_getgid 47 --> sys_getgid16()
@@ -194,4 +204,5 @@ int main(void)
// __NR_signal 48
+ // (Not yet handled by Valgrind)
// __NR_geteuid 49 --> sys_geteuid16()
@@ -215,6 +226,12 @@ int main(void)
SY(__NR_lock);
- // __NR_ioctl 54
- // __NR_fcntl 55
+ // __NR_ioctl 54 --> sys_ioctl()
+ #include <asm/ioctls.h>
+ GO(__NR_ioctl, "3s 1m");
+ SY(__NR_ioctl, i0, i0+TCSETS, s0);
+
+ // __NR_fcntl 55 --> sys_fcntl()
+ GO(__NR_fcntl, "3s 0m");
+ SY(__NR_fcntl, i0, i0, i0);
// __NR_mpx 56 --> sys_ni_syscall()
@@ -223,4 +240,6 @@ int main(void)
// __NR_setpgid 57
+ GO(__NR_setpgid, "2s 0m");
+ SY(__NR_setpgid, i0, i0);
// __NR_ulimit 58 --> sys_ni_syscall()
@@ -232,4 +251,7 @@ int main(void)
// __NR_umask 60
+ GO(__NR_umask, "1s 0m");
+ SY(__NR_umask, i0);
+
// __NR_chroot 61
// __NR_ustat 62
@@ -450,4 +472,7 @@ int main(void)
// __NR_setgid32 214
+ GO(__NR_setgid32, "1s 0m");
+ SY(__NR_setgid32);
+
// __NR_setfsuid32 215
// __NR_setfsgid32 216
--- valgrind/memcheck/tests/scalar.stderr.exp #1.13:1.14
@@ -557,7 +557,37 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+ 43: __NR_times 1s 1m
+-----------------------------------------------------
+
+Syscall param times(buf) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param times(buf) 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
+-----------------------------------------------------
44: __NR_prof 0e
-----------------------------------------------------
-----------------------------------------------------
+ 45: __NR_brk 1s 0m
+-----------------------------------------------------
+
+Syscall param brk(end_data_segment) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+ 46: __NR_setgid 1s 0m
+-----------------------------------------------------
+
+Syscall param setgid16(gid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
47: __NR_getgid 0e
-----------------------------------------------------
@@ -605,10 +635,73 @@
-----------------------------------------------------
-----------------------------------------------------
+ 54: __NR_ioctl 3s 1m
+-----------------------------------------------------
+
+Syscall param ioctl(fd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ioctl(request) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ioctl(arg) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ioctl(TCSET{S,SW,SF}) 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
+-----------------------------------------------------
+ 55: __NR_fcntl 3s 0m
+-----------------------------------------------------
+
+Syscall param fcntl(fd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param fcntl(cmd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param fcntl(arg) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
56: __NR_mpx 0e
-----------------------------------------------------
-----------------------------------------------------
+ 57: __NR_setpgid 2s 0m
+-----------------------------------------------------
+
+Syscall param setpgid(pid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param setpgid(pgid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
58: __NR_ulimit 0e
-----------------------------------------------------
-----------------------------------------------------
+ 60: __NR_umask 1s 0m
+-----------------------------------------------------
+
+Syscall param umask(mask) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
64: __NR_getppid 0e
-----------------------------------------------------
@@ -675,4 +768,12 @@
by 0x........: ...
-----------------------------------------------------
+214: __NR_setgid32 1s 0m
+-----------------------------------------------------
+
+Syscall param setgid(gid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
222: 222 0e
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 17:13:20
|
CVS commit by nethercote:
Remove unnecessary comment.
M +0 -2 vki.h 1.4
--- valgrind/include/linux/vki.h #1.3:1.4
@@ -824,6 +824,4 @@ struct vki_mq_attr {
//----------------------------------------------------------------------
-// [[Nb: newer kernels seem to use new_utsname, rather than old_utsname or
-// oldold_utsname]]
struct vki_new_utsname {
char sysname[65];
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 17:12:08
|
CVS commit by nethercote: Use our own unistd.h, because the system one might be missing some of the constants. M +7 -1 scalar.h 1.3 --- valgrind/memcheck/tests/scalar.h #1.2:1.3 @@ -1,7 +1,9 @@ +// XXX: x86-specific, so these should be in x86/, or something +#include "../../coregrind/x86-linux/vki_unistd.h" + #include <assert.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> -#include <unistd.h> #include <sys/syscall.h> #include <sys/stat.h> @@ -9,4 +11,8 @@ #include <sys/types.h> +// Since we use vki_unistd.h, we can't include <unistd.h>. So we have to +// declare this ourselves. +extern long int syscall (long int __sysno, ...) __THROW; + // Thorough syscall scalar arg checking. Also serves as thorough checking // for (very) basic syscall use. Generally not trying to do anything |
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 17:07:31
|
CVS commit by nethercote:
Converted a whole bunch of syscalls.
M +73 -71 coregrind/vg_syscalls.c 1.183
M +48 -4 memcheck/tests/scalar.c 1.14
M +2 -1 memcheck/tests/scalar.h 1.2
M +182 -0 memcheck/tests/scalar.stderr.exp 1.13
--- valgrind/coregrind/vg_syscalls.c #1.182:1.183
@@ -1120,9 +1120,11 @@ PREx(sys_ni_syscall, Special)
}
-PRE(ptrace)
+// XXX: I think this is x86/linux-specific
+// XXX: Why is the memory pointed to by arg3 never checked?
+PREx(sys_ptrace, 0)
{
- /* long ptrace (enum __ptrace_request request, pid_t pid,
- void *addr, void *data); */
- PRINT("ptrace ( %d, %d, %p, %p )", arg1,arg2,arg3,arg4);
+ PRINT("sys_ptrace ( %d, %d, %p, %p )", arg1,arg2,arg3,arg4);
+ PRE_REG_READ4(int, "ptrace",
+ long, request, long, pid, long, addr, long, data);
switch (arg1) {
case 12: /* PTRACE_GETREGS */
@@ -1159,5 +1161,6 @@ PRE(ptrace)
}
-POST(ptrace)
+// XXX: I think this is x86/linux-specific
+POST(sys_ptrace)
{
switch (arg1) {
@@ -1541,8 +1544,8 @@ PRE(mremap)
}
-PRE(nice)
+PREx(sys_nice, 0)
{
- /* int nice(int inc); */
- PRINT("nice ( %d )", arg1);
+ PRINT("sys_nice ( %d )", arg1);
+ PRE_REG_READ1(long, "nice", int, inc);
}
@@ -1923,15 +1926,15 @@ PREx(sys_execve, Special)
}
-PRE(access)
+PREx(sys_access, 0)
{
- /* int access(const char *pathname, int mode); */
- PRINT("access ( %p(%s), %d )", arg1,arg1,arg2);
+ PRINT("sys_access ( %p(%s), %d )", arg1,arg1,arg2);
+ PRE_REG_READ2(long, "access", const char *, pathname, int, mode);
PRE_MEM_RASCIIZ( "access(pathname)", arg1 );
}
-PRE(alarm)
+PREx(sys_alarm, NBRunInLWP)
{
- /* unsigned int alarm(unsigned int seconds); */
- PRINT("alarm ( %d )", arg1);
+ PRINT("sys_alarm ( %d )", arg1);
+ PRE_REG_READ1(unsigned long, "alarm", unsigned int, seconds);
}
@@ -2016,18 +2019,17 @@ POST(sys_close)
}
-PRE(dup)
+PREx(sys_dup, 0)
{
- /* int dup(int oldfd); */
- PRINT("dup ( %d )", arg1);
+ PRINT("sys_dup ( %d )", arg1);
+ PRE_REG_READ1(long, "dup", unsigned int, oldfd);
}
-POST(dup)
+POST(sys_dup)
{
- PRINT("%d\n", res);
if (!fd_allowed(res, "dup", tid, True)) {
VG_(close)(res);
set_result( -VKI_EMFILE );
} else {
- if(VG_(clo_track_fds))
+ if (VG_(clo_track_fds))
record_fd_open(tid, res, VG_(resolve_filename)(res));
}
@@ -3915,27 +3917,27 @@ POST(ioctl)
}
-PRE(kill)
+PREx(sys_kill, 0)
{
/* int kill(pid_t pid, int sig); */
- PRINT("kill ( %d, %d )", arg1,arg2);
+ PRINT("sys_kill ( %d, %d )", arg1,arg2);
+ PRE_REG_READ2(long, "kill", int, pid, int, sig);
if (arg2 == VKI_SIGVGINT || arg2 == VKI_SIGVGKILL)
set_result( -VKI_EINVAL );
}
-POST(kill)
+POST(sys_kill)
{
/* If this was a self-kill then wait for a signal to be
delivered to any thread before claiming the kill is done. */
- if (res >= 0 && /* if it was successful */
- arg2 != 0 && /* if a real signal */
- !VG_(is_sig_ign)(arg2) && /* that isn't ignored and */
- !VG_(sigismember)(&tst->eff_sig_mask, arg2) && /* we're not blocking it */
- (arg1 == VG_(getpid)() || /* directed at us or */
- arg1 == -1 || /* directed at everyone or */
- arg1 == 0 || /* directed at whole group or */
- -arg1 == VG_(getpgrp)())) { /* directed at our group... */
+ if (res >= 0 && // if it was successful and
+ arg2 != 0 && // if a real signal and
+ !VG_(is_sig_ign)(arg2) && // that isn't ignored and
+ !VG_(sigismember)(&tst->eff_sig_mask, arg2) && // we're not blocking it
+ (arg1 == VG_(getpid)() || // directed at us or
+ arg1 == -1 || // directed at everyone or
+ arg1 == 0 || // directed at whole group or
+ -arg1 == VG_(getpgrp)())) { // directed at our group...
/* ...then wait for that signal to be delivered to someone
- (might be us, might be someone else who doesn't have it
- blocked) */
+ (might be us, might be someone else who doesn't have it blocked) */
VG_(proxy_waitsig)();
}
@@ -4002,8 +4004,8 @@ POST(lstat64)
}
-PRE(mkdir)
+PREx(sys_mkdir, MayBlock)
{
- /* int mkdir(const char *pathname, mode_t mode); */
- PRINT("mkdir ( %p, %d )", arg1,arg2);
+ PRINT("sys_mkdir ( %p, %d )", arg1,arg2);
+ PRE_REG_READ2(long, "mkdir", const char *, pathname, int, mode);
PRE_MEM_RASCIIZ( "mkdir(pathname)", arg1 );
}
@@ -4238,16 +4240,17 @@ POST(sys_creat)
record_fd_open(tid, res, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
- PRINT("%d\n",res);
}
-PRE(pipe)
+// XXX: sort of x86-specific
+PREx(sys_pipe, 0)
{
- /* int pipe(int filedes[2]); */
- PRINT("pipe ( %p )", arg1);
- PRE_MEM_WRITE( "pipe(filedes)", arg1, 2*sizeof(int) );
+ PRINT("sys_pipe ( %p )", arg1);
+ PRE_REG_READ1(int, "pipe", unsigned long *, filedes);
+ PRE_MEM_WRITE( "pipe(filedes)", arg1, 2*sizeof(long) );
}
-POST(pipe)
+POST(sys_pipe)
{
+ // XXX: use of Int here -- 32-bit-specific?
Int *p = (Int *)arg1;
@@ -4393,16 +4396,16 @@ POST(readv)
}
-PRE(rename)
+PREx(sys_rename, 0)
{
- /* int rename(const char *oldpath, const char *newpath); */
- PRINT("rename ( %p, %p )", arg1, arg2 );
+ PRINT("sys_rename ( %p, %p )", arg1, arg2 );
+ PRE_REG_READ2(long, "rename", const char *, oldpath, const char *, newpath);
PRE_MEM_RASCIIZ( "rename(oldpath)", arg1 );
PRE_MEM_RASCIIZ( "rename(newpath)", arg2 );
}
-PRE(rmdir)
+PREx(sys_rmdir, MayBlock)
{
- /* int rmdir(const char *pathname); */
- PRINT("rmdir ( %p )", arg1);
+ PRINT("sys_rmdir ( %p )", arg1);
+ PRE_REG_READ1(long, "rmdir", const char *, pathname);
PRE_MEM_RASCIIZ( "rmdir(pathname)", arg1 );
}
@@ -5113,8 +5116,8 @@ POST(sys_newuname)
}
-PRE(utime)
+PREx(sys_utime, MayBlock)
{
- /* int utime(const char *filename, struct utimbuf *buf); */
- PRINT("utime ( %p, %p )", arg1,arg2);
+ PRINT("sys_utime ( %p, %p )", arg1,arg2);
+ PRE_REG_READ2(long, "utime", char *, filename, struct utimbuf *, buf);
PRE_MEM_RASCIIZ( "utime(filename)", arg1 );
if (arg2 != (UWord)NULL)
@@ -5571,5 +5574,4 @@ POST(mq_open)
record_fd_open(tid, res, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
- PRINT("%d\n",res);
}
@@ -5850,29 +5852,29 @@ static const struct sys_info sys_info[]
SYSX_(__NR_getuid, sys_getuid16), // 24 ## P
- // stime 25 sys_stime *
- SYSBA(ptrace, 0), // 26 sys_ptrace ()
- SYSB_(alarm, NBRunInLWP), // 27 sys_alarm *
+ // (__NR_stime, sys_stime), // 25 * (SVr4,SVID,X/OPEN)
+ SYSXY(__NR_ptrace, sys_ptrace), // 26 (x86?) (L?)
+ SYSX_(__NR_alarm, sys_alarm), // 27 * P
// (__NR_oldfstat, sys_fstat), // 28 * L -- obsolete
SYSX_(__NR_pause, sys_pause), // 29 * P
- SYSB_(utime, MayBlock), // 30 sys_utime *
+ SYSX_(__NR_utime, sys_utime), // 30 * P
SYSX_(__NR_stty, sys_ni_syscall), // 31 * P -- unimplemented
SYSX_(__NR_gtty, sys_ni_syscall), // 32 * P -- unimplemented
- SYSB_(access, 0), // 33 sys_access *
- SYSB_(nice, 0), // 34 sys_nice *
- SYSX_(__NR_ftime, sys_ni_syscall), // 35 * P -- unimplemented
+ SYSX_(__NR_access, sys_access), // 33 * P
+ SYSX_(__NR_nice, sys_nice), // 34 * (almost P)
- SYSX_(__NR_sync, sys_sync), // 36 *
- SYSBA(kill, 0), // 37 sys_kill *
- SYSB_(rename, 0), // 38 sys_rename *
- SYSB_(mkdir, MayBlock), // 39 sys_mkdir *
+ SYSX_(__NR_ftime, sys_ni_syscall), // 35 * P -- unimplemented
+ SYSX_(__NR_sync, sys_sync), // 36 * (almost P)
+ SYSXY(__NR_kill, sys_kill), // 37 * P
+ SYSX_(__NR_rename, sys_rename), // 38 * P
+ SYSX_(__NR_mkdir, sys_mkdir), // 39 * P
- SYSB_(rmdir, MayBlock), // 40 sys_rmdir *
- SYSBA(dup, 0), // 41 sys_dup *
- SYSBA(pipe, 0), // 42 sys_pipe
+ SYSX_(__NR_rmdir, sys_rmdir), // 40 * P
+ SYSXY(__NR_dup, sys_dup), // 41 * P
+ SYSXY(__NR_pipe, sys_pipe), // 42 (x86) P
SYSBA(times, 0), // 43 sys_times *
SYSX_(__NR_prof, sys_ni_syscall), // 44 * P -- unimplemented
- SYSB_(brk, Special), // 45 sys_brk *
+ SYSB_(brk, Special), // 45 sys_brk *
SYSB_(setgid, 0), // 46 sys_setgid16 ##
SYSX_(__NR_getgid, sys_getgid16), // 47 ## P
--- valgrind/memcheck/tests/scalar.c #1.13:1.14
@@ -77,4 +77,5 @@ int main(void)
// __NR_lchown 16
+ // (Not yet handled by Valgrind)
// __NR_break 17 --> sys_ni_syscall()
@@ -83,4 +84,5 @@ int main(void)
// __NR_oldstat 18
+ // (obsolete, not handled by Valgrind)
// __NR_lseek 19 --> sys_lseek()
@@ -109,12 +111,24 @@ int main(void)
// __NR_stime 25
- // __NR_ptrace 26
- // __NR_alarm 27
+ // (Not yet handled by Valgrind)
+
+ // __NR_ptrace 26 --> arch/sys_ptrace()
+ // XXX: memory pointed to be arg3 is never checked...
+ GO(__NR_ptrace, "4s 2m");
+ SY(__NR_ptrace, i0+PTRACE_GETREGS, i0, s0, s0);
+
+ // __NR_alarm 27 --> sys_alarm()
+ GO(__NR_alarm, "1s 0m");
+ SY(__NR_alarm, i0);
+
// __NR_oldfstat 28
+ // (obsolete, not handled by Valgrind)
// __NR_pause 29 --> sys_pause()
// XXX: will have to be tested separately
- // __NR_utime 30
+ // __NR_utime 30 --> sys_utime()
+ GO(__NR_utime, "2s 2m");
+ SY(__NR_utime, s0, s0+1);
// __NR_stty 31 --> sys_ni_syscall()
@@ -126,7 +140,11 @@ int main(void)
SY(__NR_gtty);
- // __NR_access 33
+ // __NR_access 33 --> sys_access()
+ GO(__NR_access, "2s 1m");
+ SY(__NR_access, s0, i0);
// __NR_nice 34
+ GO(__NR_nice, "1s 0m");
+ SY(__NR_nice, i0);
// __NR_ftime 35 --> sys_ni_syscall()
@@ -139,9 +157,27 @@ int main(void)
// __NR_kill 37
+ GO(__NR_kill, "2s 0m");
+ SY(__NR_kill, i0, i0);
+
// __NR_rename 38
+ GO(__NR_rename, "2s 2m");
+ SY(__NR_rename, s0, s0);
+
// __NR_mkdir 39
+ GO(__NR_mkdir, "2s 1m");
+ SY(__NR_mkdir, s0, i0);
+
// __NR_rmdir 40
+ GO(__NR_rmdir, "1s 1m");
+ SY(__NR_rmdir, s0);
+
// __NR_dup 41
+ GO(__NR_dup, "1s 0m");
+ SY(__NR_dup, i0);
+
// __NR_pipe 42
+ GO(__NR_pipe, "1s 1m");
+ SY(__NR_pipe, s0);
+
// __NR_times 43
@@ -193,4 +229,6 @@ int main(void)
// __NR_oldolduname 59
+ // (obsolete, not handled by Valgrind)
+
// __NR_umask 60
// __NR_chroot 61
@@ -227,5 +265,8 @@ int main(void)
// __NR_select 82
// __NR_symlink 83
+
// __NR_oldlstat 84
+ // (obsolete, not handled by Valgrind)
+
// __NR_readlink 85
// __NR_uselib 86
@@ -252,5 +293,8 @@ int main(void)
// __NR_lstat 107
// __NR_fstat 108
+
// __NR_olduname 109
+ // (obsolete, not handled by Valgrind)
+
// __NR_iopl 110
--- valgrind/memcheck/tests/scalar.h #1.1:1.2
@@ -4,6 +4,7 @@
#include <stdlib.h>
#include <unistd.h>
-#include <sys/stat.h>
#include <sys/syscall.h>
+#include <sys/stat.h>
+#include <sys/ptrace.h>
#include <sys/types.h>
--- valgrind/memcheck/tests/scalar.stderr.exp #1.12:1.13
@@ -363,4 +363,66 @@
-----------------------------------------------------
-----------------------------------------------------
+ 26: __NR_ptrace 4s 2m
+-----------------------------------------------------
+
+Syscall param ptrace(request) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ptrace(pid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ptrace(addr) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ptrace(data) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param ptrace(getregs) 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
+-----------------------------------------------------
+ 27: __NR_alarm 1s 0m
+-----------------------------------------------------
+
+Syscall param alarm(seconds) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+ 30: __NR_utime 2s 2m
+-----------------------------------------------------
+
+Syscall param utime(filename) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param utime(buf) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param utime(filename) 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 utime(buf) 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
+-----------------------------------------------------
31: __NR_stty 0e
-----------------------------------------------------
@@ -369,4 +431,31 @@
-----------------------------------------------------
-----------------------------------------------------
+ 33: __NR_access 2s 1m
+-----------------------------------------------------
+
+Syscall param access(pathname) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param access(mode) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param access(pathname) 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
+-----------------------------------------------------
+ 34: __NR_nice 1s 0m
+-----------------------------------------------------
+
+Syscall param nice(inc) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
35: __NR_ftime 0e
-----------------------------------------------------
@@ -375,4 +464,97 @@
-----------------------------------------------------
-----------------------------------------------------
+ 37: __NR_kill 2s 0m
+-----------------------------------------------------
+
+Syscall param kill(pid) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param kill(sig) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+ 38: __NR_rename 2s 2m
+-----------------------------------------------------
+
+Syscall param rename(oldpath) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param rename(newpath) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param rename(oldpath) 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 rename(newpath) 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
+-----------------------------------------------------
+ 39: __NR_mkdir 2s 1m
+-----------------------------------------------------
+
+Syscall param mkdir(pathname) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mkdir(mode) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param mkdir(pathname) 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
+-----------------------------------------------------
+ 40: __NR_rmdir 1s 1m
+-----------------------------------------------------
+
+Syscall param rmdir(pathname) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param rmdir(pathname) 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
+-----------------------------------------------------
+ 41: __NR_dup 1s 0m
+-----------------------------------------------------
+
+Syscall param dup(oldfd) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+-----------------------------------------------------
+ 42: __NR_pipe 1s 1m
+-----------------------------------------------------
+
+Syscall param pipe(filedes) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param pipe(filedes) 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
+-----------------------------------------------------
44: __NR_prof 0e
-----------------------------------------------------
|
|
From: Tom H. <th...@cy...> - 2004-11-12 16:29:21
|
In message <Pin...@he...>
Nicholas Nethercote <nj...@ca...> wrote:
> On Fri, 12 Nov 2004, Tom Hughes wrote:
>
>>> +// XXX: prototype here seemingly doesn't match the prototype for i386-linux,
>>> +// but it seems to work nonetheless...
>>
>> It looks like it matches the prototype to me... Are you talking about
>> the fourth argument to do_execve that sys_execve passes? That is just
>> a pointer to the raw register set passed to the system call.
>
> The prototype for sys_exec(), which gets called from the
> sys_call_table indirection, is this:
>
> asmlinkage int sys_execve(struct pt_regs regs)
>
> on x86. This is different to most of the others which have the args
> done as normal. I'm not sure how these 'pt_regs' ones work.
Ah right. That is being passed a structure by reference which just
means that it will expect to find an entire copy of the structure on
the stack.
Basically when the system call is taken the kernel invokes the system
call handler from sys_call_table with all the registers on the stack
in the order given by the pt_regs structure.
Some of those routines declare separate arguments and rely on the x86
procedure calling conventions meaning that those map to the first few
words of the stack and some just declare a single argument which is a
structure of all the registers which will map over the register values
on the stack.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 16:09:42
|
On Fri, 12 Nov 2004, Tom Hughes wrote: >> +// XXX: prototype here seemingly doesn't match the prototype for i386-linux, >> +// but it seems to work nonetheless... > > It looks like it matches the prototype to me... Are you talking about > the fourth argument to do_execve that sys_execve passes? That is just > a pointer to the raw register set passed to the system call. The prototype for sys_exec(), which gets called from the sys_call_table indirection, is this: asmlinkage int sys_execve(struct pt_regs regs) on x86. This is different to most of the others which have the args done as normal. I'm not sure how these 'pt_regs' ones work. > BTW the scalar test is no longer building on my RH9 box because at > least one of the system call numbers is not in asm/unistd.h on that > machine. Well actually it is, but is commented out (lookup_dcookie). > > I guess we either need to ifdef tests of system calls that might not > exist or we need to use out own list of system call numbers. Yep. I'll use our own list. Thanks. N |
|
From: Tom H. <th...@cy...> - 2004-11-12 16:01:21
|
In message <200...@of...>
Nicholas Nethercote <nj...@ca...> wrote:
> -PRE(execve)
> +// XXX: prototype here seemingly doesn't match the prototype for i386-linux,
> +// but it seems to work nonetheless...
> +PREx(sys_execve, Special)
> {
> - /* int execve (const char *filename,
> - char *const argv [],
> - char *const envp[]); */
> - PRINT("execve ( %p(%s), %p, %p )", arg1, arg1, arg2, arg3);
> -
> + PRINT("sys_execve ( %p(%s), %p, %p )", arg1, arg1, arg2, arg3);
It looks like it matches the prototype to me... Are you talking about
the fourth argument to do_execve that sys_execve passes? That is just
a pointer to the raw register set passed to the system call.
BTW the scalar test is no longer building on my RH9 box because at
least one of the system call numbers is not in asm/unistd.h on that
machine. Well actually it is, but is commented out (lookup_dcookie).
I guess we either need to ifdef tests of system calls that might not
exist or we need to use out own list of system call numbers.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 15:41:09
|
CVS commit by nethercote:
Converted execve().
M +12 -12 coregrind/vg_syscalls.c 1.182
M +6 -2 memcheck/tests/scalar.c 1.13
M +27 -3 memcheck/tests/scalar.stderr.exp 1.12
--- valgrind/coregrind/vg_syscalls.c #1.181:1.182
@@ -1813,11 +1813,11 @@ void pre_argv_envp(Addr a, ThreadId tid,
}
-PRE(execve)
+// XXX: prototype here seemingly doesn't match the prototype for i386-linux,
+// but it seems to work nonetheless...
+PREx(sys_execve, Special)
{
- /* int execve (const char *filename,
- char *const argv [],
- char *const envp[]); */
- PRINT("execve ( %p(%s), %p, %p )", arg1, arg1, arg2, arg3);
-
+ PRINT("sys_execve ( %p(%s), %p, %p )", arg1, arg1, arg2, arg3);
+ PRE_REG_READ3(vki_off_t, "execve",
+ char *, filename, char **, argv, char **, envp);
PRE_MEM_RASCIIZ( "execve(filename)", arg1 );
if (arg2 != (UWord)NULL)
@@ -5833,7 +5833,7 @@ static const struct sys_info sys_info[]
SYSX_(__NR_unlink, sys_unlink), // 10 * P
- SYSB_(execve, Special), // 11 sys_execve () P
- SYSX_(__NR_chdir, sys_chdir), // 12 *
- SYSXY(__NR_time, sys_time), // 13 *
+ SYSX_(__NR_execve, sys_execve), // 11 (*??) P
+ SYSX_(__NR_chdir, sys_chdir), // 12 * P
+ SYSXY(__NR_time, sys_time), // 13 * P
SYSX_(__NR_mknod, sys_mknod), // 14 * P
--- valgrind/memcheck/tests/scalar.c #1.12:1.13
@@ -54,5 +54,9 @@ int main(void)
SY(__NR_unlink, s0);
- // __NR_execve 11
+ // __NR_execve 11 --> sys_execve()
+ // Nb: could have 3 memory errors if we pass s0+1 as the 2nd and 3rd
+ // args, except for bug #93174.
+ GO(__NR_execve, "3s 1m");
+ SY(__NR_execve, s0, s0, s0);
// __NR_chdir 12 --> sys_chdir()
--- valgrind/memcheck/tests/scalar.stderr.exp #1.11:1.12
@@ -170,4 +170,28 @@
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-----------------------------------------------------
+ 11: __NR_execve 3s 1m
+-----------------------------------------------------
+
+Syscall param execve(filename) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param execve(argv) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param execve(envp) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param execve(filename) 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
+-----------------------------------------------------
12: __NR_chdir 1s 1m
-----------------------------------------------------
@@ -293,4 +317,7 @@
by 0x........: ...
+More than 50 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
+
Syscall param mount(source) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
@@ -319,7 +346,4 @@
by 0x........: ...
-More than 50 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
-
Syscall param umount(path) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 14:57:37
|
CVS commit by nethercote:
Converted vfork() and acct(). Properly annotated all the ones we don't handle,
plus a few we do.
A memcheck/tests/scalar_vfork.c 1.1 [no copyright]
A memcheck/tests/scalar_vfork.stderr.exp 1.1
A memcheck/tests/scalar_vfork.vgtest 1.1
M +91 -91 coregrind/vg_syscalls.c 1.181
M +1 -0 memcheck/tests/.cvsignore 1.25
M +3 -1 memcheck/tests/Makefile.am 1.58
M +4 -2 memcheck/tests/scalar.c 1.12
M +14 -0 memcheck/tests/scalar.stderr.exp 1.11
--- valgrind/coregrind/vg_syscalls.c #1.180:1.181
@@ -5265,8 +5265,8 @@ POST(sched_getaffinity)
}
-PRE(acct)
+PREx(sys_acct, 0)
{
- /* int acct(const char *filename); */
- PRINT("acct ( %p )", arg1);
+ PRINT("sys_acct ( %p )", arg1);
+ PRE_REG_READ1(long, "acct", const char *, filename);
PRE_MEM_RASCIIZ( "acct(filename)", arg1 );
}
@@ -5839,6 +5839,6 @@ static const struct sys_info sys_info[]
SYSX_(__NR_chmod, sys_chmod), // 15 * P
- // (lchown, sys_lchown16), // 16 ##
- SYSX_(__NR_break, sys_ni_syscall), // 17 * P
+ // (__NR_lchown, sys_lchown16), // 16 ## P
+ SYSX_(__NR_break, sys_ni_syscall), // 17 * P -- unimplemented
// (__NR_oldstat, sys_stat), // 18 * L -- obsolete
SYSX_(__NR_lseek, sys_lseek), // 19 * P
@@ -5857,9 +5857,9 @@ static const struct sys_info sys_info[]
SYSB_(utime, MayBlock), // 30 sys_utime *
- SYSX_(__NR_stty, sys_ni_syscall), // 31 * P
- SYSX_(__NR_gtty, sys_ni_syscall), // 32 * P
+ SYSX_(__NR_stty, sys_ni_syscall), // 31 * P -- unimplemented
+ SYSX_(__NR_gtty, sys_ni_syscall), // 32 * P -- unimplemented
SYSB_(access, 0), // 33 sys_access *
SYSB_(nice, 0), // 34 sys_nice *
- SYSX_(__NR_ftime, sys_ni_syscall), // 35 * P
+ SYSX_(__NR_ftime, sys_ni_syscall), // 35 * P -- unimplemented
SYSX_(__NR_sync, sys_sync), // 36 *
@@ -5872,27 +5872,27 @@ static const struct sys_info sys_info[]
SYSBA(pipe, 0), // 42 sys_pipe
SYSBA(times, 0), // 43 sys_times *
- SYSX_(__NR_prof, sys_ni_syscall), // 44 * P
+ SYSX_(__NR_prof, sys_ni_syscall), // 44 * P -- unimplemented
SYSB_(brk, Special), // 45 sys_brk *
SYSB_(setgid, 0), // 46 sys_setgid16 ##
- SYSX_(__NR_getgid, sys_getgid16), // 47 ##
- // signal 48 sys_signal *
- SYSX_(__NR_geteuid, sys_geteuid16), // 49 ##
+ SYSX_(__NR_getgid, sys_getgid16), // 47 ## P
+ // (__NR_signal, sys_signal), // 48 * (ANSI C?)
+ SYSX_(__NR_geteuid, sys_geteuid16), // 49 ## P
- SYSX_(__NR_getegid, sys_getegid16), // 50 ##
- SYSB_(acct, 0), // 51 sys_acct *
+ SYSX_(__NR_getegid, sys_getegid16), // 50 ## (P16)
+ SYSX_(__NR_acct, sys_acct), // 51 * (SVR4, non-POSIX)
SYSX_(__NR_umount2, sys_umount), // 52 * L
- SYSX_(__NR_lock, sys_ni_syscall), // 53 * P
+ SYSX_(__NR_lock, sys_ni_syscall), // 53 * P -- unimplemented
SYSBA(ioctl, MayBlock), // 54 sys_ioctl *
SYSBA(fcntl, 0), // 55 sys_fcntl *
- SYSX_(__NR_mpx, sys_ni_syscall), // 56 * P
+ SYSX_(__NR_mpx, sys_ni_syscall), // 56 * P -- unimplemented
SYSBA(setpgid, 0), // 57 sys_setpgid *
- SYSX_(__NR_ulimit, sys_ni_syscall), // 58 * P
+ SYSX_(__NR_ulimit, sys_ni_syscall), // 58 * P -- unimplemented
// (__NR_oldolduname, sys_olduname), // 59 (?) L -- obsolete
SYSB_(umask, 0), // 60 sys_umask *
SYSB_(chroot, 0), // 61 sys_chroot *
- // ustat 62 sys_ustat *
+ // (__NR_ustat, sys_ustat) // 62 * (SVr4, deprecated)
SYSBA(dup2, 0), // 63 sys_dup2 *
SYSX_(__NR_getppid, sys_getppid), // 64 *
@@ -5901,6 +5901,6 @@ static const struct sys_info sys_info[]
SYSX_(__NR_setsid, sys_setsid), // 66 *
SYSBA(sigaction, SIG_SIM), // 67 sys_sigaction
- // sgetmask 68 sys_sgetmask *
- // ssetmask 69 sys_ssetmask *
+ // (__NR_sgetmask, sys_sgetmask), // 68 * (ANSI C)
+ // (__NR_ssetmask, sys_ssetmask), // 69 * (ANSI C)
SYSB_(setreuid, 0), // 70 sys_setreuid16 ##
@@ -5908,5 +5908,5 @@ static const struct sys_info sys_info[]
SYSB_(sigsuspend, MayBlock), // 72 sys_sigsuspend
SYSBA(sigpending, NBRunInLWP), // 73 sys_sigpending *
- // sethostname 74 sys_sethostname *
+ // (__NR_sethostname, sys_sethostname), // 74 * (almost P)
SYSB_(setrlimit, 0), // 75 sys_setrlimit *
@@ -5923,8 +5923,8 @@ static const struct sys_info sys_info[]
SYSBA(readlink, 0), // 85 sys_readlink *
- // uselib 86 sys_uselib *
- // swapon 87 sys_swapon *
- // reboot 88 sys_reboot *
- // readdir 89 old_readdir
+ // (__NR_uselib, sys_uselib), // 86 * L
+ // (__NR_swapon, sys_swapon), // 87 * L
+ // (__NR_reboot, sys_reboot), // 88 * L
+ // (__NR_readdir, old_readdir), // 89 () L -- superseded
SYSB_(mmap, Special), // 90 old_mmap
@@ -5937,5 +5937,5 @@ static const struct sys_info sys_info[]
SYSB_(getpriority, 0), // 96 sys_getpriority *
SYSB_(setpriority, 0), // 97 sys_setpriority *
- // profil 98
+ // (__NR_profil, sys_ni_syscall), // 98 * P -- unimplemented
SYSBA(statfs, 0), // 99 sys_statfs *
@@ -5953,19 +5953,19 @@ static const struct sys_info sys_info[]
SYSB_(iopl, 0), // 110 sys_iopl
- SYSX_(__NR_vhangup, sys_vhangup), // 111 *
- SYSX_(__NR_idle, sys_ni_syscall), // 112 * P
- // vm86old 113 sys_vm86old
+ SYSX_(__NR_vhangup, sys_vhangup), // 111 * L
+ SYSX_(__NR_idle, sys_ni_syscall), // 112 * P -- unimplemented
+ // (__NR_vm86old, sys_vm86old), // 113 (x86) L
SYSBA(wait4, MayBlock), // 114 sys_wait4 *
- // swapoff 115 sys_swapoff *
+ // (__NR_swapoff, sys_swapoff), // 115 * L
SYSBA(sysinfo, 0), // 116 sys_sysinfo *
SYSBA(ipc, 0), // 117 sys_ipc
SYSB_(fsync, MayBlock), // 118 sys_fsync *
- // sigreturn 119 sys_sigreturn
+ // (__NR_sigreturn, sys_sigreturn), // 119 () L
- SYSB_(clone, Special), // 120 sys_clone (very non-gen)
- // setdomainname 121 sys_setdomainname *
+ SYSB_(clone, Special), // 120 sys_clone (very non-gen) L
+ // (__NR_setdomainname, sys_setdomainname),// 121 * (non-P?)
SYSXY(__NR_uname, sys_newuname), // 122 * P
- SYSB_(modify_ldt, Special), // 123 sys_modify_ldt (x86,amd64)
+ SYSB_(modify_ldt, Special), // 123 sys_modify_ldt (x86,amd64) L
SYSBA(adjtimex, 0), // 124 sys_adjtimex *
SYSBA(mprotect, 0), // 125 sys_mprotect *
@@ -5973,15 +5973,15 @@ static const struct sys_info sys_info[]
SYSBA(sigprocmask, SIG_SIM), // 126 sys_sigprocmask *
// Nb: create_module() was removed 2.4-->2.6
- SYSX_(__NR_create_module, sys_ni_syscall), // 127 * P
+ SYSX_(__NR_create_module, sys_ni_syscall), // 127 * P -- unimplemented
SYSB_(init_module, MayBlock), // 128 sys_init_module *
- // delete_module 129 sys_delete_module *
+ // (__NR_delete_module, sys_delete_module),// 129 () (L?)
// Nb: get_kernel_syms() was removed 2.4-->2.6
- SYSX_(__NR_get_kernel_syms, sys_ni_syscall), // 130 * P
+ SYSX_(__NR_get_kernel_syms, sys_ni_syscall), // 130 * P -- unimplemented
SYSB_(quotactl, 0), // 131 sys_quotactl *
SYSB_(getpgid, 0), // 132 sys_getpgid *
SYSB_(fchdir, 0), // 133 sys_fchdir *
- // bdflush 134 sys_bdflush *
- // sysfs 135 sys_sysfs *
+ // (__NR_bdflush, sys_bdflush), // 134 * L
+ // (__NR_sysfs, sys_sysfs), // 135 * (SVr4)
SYSB_(personality, 0), // 136 sys_personality *
@@ -6005,15 +6005,15 @@ static const struct sys_info sys_info[]
SYSB_(munlock, MayBlock), // 151 sys_unlock *
SYSB_(mlockall, MayBlock), // 152 sys_mlockall *
- SYSX_(__NR_munlockall, sys_munlockall), // 153 *
- SYSBA(sched_setparam, 0), /* ??? */ // 154 sys_sched_setparam *
+ SYSX_(__NR_munlockall, sys_munlockall), // 153 * P
+ SYSBA(sched_setparam, 0/*???*/), // 154 sys_sched_setparam *
- SYSBA(sched_getparam, 0), /* ??? */ // 155 sys_sched_getparam *
- SYSB_(sched_setscheduler, 0), /* ??? */ // 156 sys_sched_setscheduler *
- SYSB_(sched_getscheduler, 0), /* ??? */ // 157 sys_sched_getscheduler *
- SYSB_(sched_yield, 0), /* ??? */ // 158 sys_sched_yield *
- SYSB_(sched_get_priority_max, 0), /* ??? */ // 159 sys_sched_get_priority_max *
+ SYSBA(sched_getparam, 0/*???*/), // 155 sys_sched_getparam *
+ SYSB_(sched_setscheduler, 0/*???*/), // 156 sys_sched_setscheduler *
+ SYSB_(sched_getscheduler, 0/*???*/), // 157 sys_sched_getscheduler *
+ SYSB_(sched_yield, 0/*???*/), // 158 sys_sched_yield *
+ SYSB_(sched_get_priority_max,0/*???*/), // 159 sys_sched_get_priority_max *
- SYSB_(sched_get_priority_min, 0), /* ??? */ // 160 sys_sched_get_priority_min *
- // sched_rr_get_interval 161 sys_sched_rr_get_interval *
+ SYSB_(sched_get_priority_min,0/*???*/), // 160 sys_sched_get_priority_min *
+ // (__NR_sched_rr_get_interval, sys_sched_rr_get_interval), // 161 *
SYSBA(nanosleep, MayBlock|PostOnFail), // 162 sys_nanosleep *
SYSB_(mremap, Special), // 163 sys_mremap *
@@ -6021,13 +6021,13 @@ static const struct sys_info sys_info[]
SYSBA(getresuid, 0), // 165 sys_getresuid16 ##
- // vm86 166 sys_vm86
- SYSX_(__NR_query_module, sys_ni_syscall), // 167 * P
+ // (__NR_vm86, sys_vm86), // 166 (x86) L
+ SYSX_(__NR_query_module, sys_ni_syscall), // 167 * P -- unimplemented
SYSBA(poll, MayBlock), // 168 sys_poll *
- // nfsservctl 169 sys_nfsservctl *
+ // (__NR_nfsservctl, sys_nfsservctl), // 169 * L
SYSB_(setresgid, 0), // 170 sys_setresgid16 ##
SYSBA(getresgid, 0), // 171 sys_getresgid16 ##
SYSB_(prctl, MayBlock), // 172 sys_prctl *
- // rt_sigreturn 173 sys_rt_sigreturn
+ // (__NR_rt_sigreturn, sys_rt_sigreturn), // 173 () ()
SYSBA(rt_sigaction, SIG_SIM), // 174 sys_rt_sigaction
@@ -6050,5 +6050,6 @@ static const struct sys_info sys_info[]
SYSB_(putpmsg, MayBlock), // 189 sys_ni_syscall ...
- // vfork 190 sys_vfork
+ // Nb: we convert vfork() to fork() in VG_(pre_syscall)().
+ // (__NR_vfork, sys_vfork), // 190 -- Valgrind avoids
SYSBA(ugetrlimit, 0), // 191 sys_getrlimit *
SYSBA(mmap2, 0), // 192 sys_mmap2
@@ -6082,7 +6083,7 @@ static const struct sys_info sys_info[]
SYSB_(setfsuid32, 0), // 215 sys_setfsuid *
SYSB_(setfsgid32, 0), // 216 sys_setfsgid *
- // pivot_root 217 sys_pivot_root *
+ // (__NR_pivot_root, sys_pivot_root), // 217 * L
SYSBA(mincore, 0), // 218 sys_mincore *
- SYSB_(madvise, MayBlock), // 219 /* Also called __NR_madvise1 */ sys_madvise *
+ SYSB_(madvise, MayBlock), // 219 sys_madvise *
SYSBA(getdents64, MayBlock), // 220 sys_getdents64 *
@@ -6091,27 +6092,25 @@ static const struct sys_info sys_info[]
// include/linux/syscalls.h...
SYSBA(fcntl64, 0), // 221 sys_fcntl64 *
-
// Nb: 222 is reserved for TUX (whatever that means --njn)
- SYSX_(222, sys_ni_syscall), // 222 * P
- // Nb: 223 is unused
- SYSX_(223, sys_ni_syscall), // 223 * P
- // gettid 224 sys_gettid *
+ SYSX_(222, sys_ni_syscall), // 222 * P -- reserved
+ SYSX_(223, sys_ni_syscall), // 223 * P -- unused
+ // (__NR_gettid, sys_gettid), // 224 * L
- // readahead 225 sys_readahead *
- SYSB_(setxattr, MayBlock), // 226 sys_setxattr *
- SYSB_(lsetxattr, MayBlock), // 227 sys_lsetxattr *
- SYSB_(fsetxattr, MayBlock), // 228 sys_fsetxattr *
- SYSBA(getxattr, MayBlock), // 229 sys_getxattr *
+ // (__NR_readahead, sys_readahead), // 225 * ()
+ SYSB_(setxattr, MayBlock), // 226 sys_setxattr * L?
+ SYSB_(lsetxattr, MayBlock), // 227 sys_lsetxattr * L?
+ SYSB_(fsetxattr, MayBlock), // 228 sys_fsetxattr * L?
+ SYSBA(getxattr, MayBlock), // 229 sys_getxattr * L?
- SYSBA(lgetxattr, MayBlock), // 230 sys_lgetxattr *
- SYSBA(fgetxattr, MayBlock), // 231 sys_fgetxattr *
- SYSBA(listxattr, MayBlock), // 232 sys_listxattr *
- SYSBA(llistxattr, MayBlock), // 233 sys_llistxattr *
- SYSBA(flistxattr, MayBlock), // 234 sys_flistxattr *
+ SYSBA(lgetxattr, MayBlock), // 230 sys_lgetxattr * L?
+ SYSBA(fgetxattr, MayBlock), // 231 sys_fgetxattr * L?
+ SYSBA(listxattr, MayBlock), // 232 sys_listxattr * L?
+ SYSBA(llistxattr, MayBlock), // 233 sys_llistxattr * L?
+ SYSBA(flistxattr, MayBlock), // 234 sys_flistxattr * L?
- SYSB_(removexattr, MayBlock), // 235 sys_removexattr *
- SYSB_(lremovexattr, MayBlock), // 236 sys_lremovexattr *
- SYSB_(fremovexattr, MayBlock), // 237 sys_fremovexattr *
- // tkill 238 sys_tkill *
+ SYSB_(removexattr, MayBlock), // 235 sys_removexattr * L?
+ SYSB_(lremovexattr, MayBlock), // 236 sys_lremovexattr * L?
+ SYSB_(fremovexattr, MayBlock), // 237 sys_fremovexattr * L?
+ // (__NR_tkill, sys_tkill), // 238 * L
SYSBA(sendfile64, MayBlock), // 239 sys_sendfile64 *
@@ -6128,5 +6127,5 @@ static const struct sys_info sys_info[]
SYSBA(io_cancel, 0), // 249 sys_io_cancel *
- // fadvise64 250 sys_fadvise64 *
+ // (__NR_fadvise64, sys_fadvise64), // 250 * ()
// Nb: 251 is unused
SYSX_(251, sys_ni_syscall), // 251 * P
@@ -6137,5 +6136,5 @@ static const struct sys_info sys_info[]
SYSB_(epoll_ctl, 0), // 255 sys_epoll_ctl *
SYSBA(epoll_wait, MayBlock), // 256 sys_epoll_wait *
- // remap_file_pages 257 sys_remap_file_pages *
+ // (__NR_remap_file_pages, sys_remap_file_pages), // 257 * L
SYSB_(set_tid_address, Special), // 258 sys_set_tid_address *
SYSBA(timer_create, 0), // 259 sys_timer_create
@@ -6149,17 +6148,18 @@ static const struct sys_info sys_info[]
SYSBA(clock_gettime, 0), // (timer_create+6) sys_clock_gettime *
SYSBA(clock_getres, 0), // (timer_create+7) sys_clock_getres *
- // clock_nanosleep (timer_create+8) sys_clock_nanosleep *
+ // (__NR_clock_nanosleep, sys_clock_nanosleep), // (timer_create+8) * P?
+
SYSBA(statfs64, 0), // 268 sys_statfs64 *
SYSBA(fstatfs64, 0), // 269 sys_fstatfs64 *
- // tgkill 270 sys_tgkill *
+ // (__NR_tgkill, sys_tgkill), // 270 * ()
SYSB_(utimes, 0), // 271 sys_utimes *
- // fadvise64_64 272 sys_fadvise64_64 *
- SYSX_(__NR_vserver, sys_ni_syscall), // 273 * P
- // mbind 274 sys_mbind
+ // (__NR_fadvise64_64, sys_fadvise64_64), // 272 * ()
+ SYSX_(__NR_vserver, sys_ni_syscall), // 273 * P -- unimplemented
+ // (__NR_mbind, sys_mbind), // 274 () ()
- // get_mempolicy 275 sys_get_mempolicy
- // set_mempolicy 276 sys_set_mempolicy
+ // (__NR_get_mempolicy, sys_get_mempolicy), // 275 () ()
+ // (__NR_set_mempolicy, sys_set_mempolicy), // 276 () ()
SYSBA(mq_open, 0), // 277 sys_mq_open *
SYSB_(mq_unlink, 0), // (mq_open+1) sys_mq_unlink *
--- valgrind/memcheck/tests/.cvsignore #1.24:1.25
@@ -52,4 +52,5 @@
scalar_fork
scalar_supp
+scalar_vfork
sigaltstack
signal2
--- valgrind/memcheck/tests/Makefile.am #1.57:1.58
@@ -57,4 +57,5 @@
scalar_fork.stderr.exp scalar_fork.vgtest \
scalar_supp.stderr.exp scalar_supp.vgtest \
+ scalar_vfork.stderr.exp scalar_vfork.vgtest \
sigaltstack.stderr.exp sigaltstack.vgtest \
signal2.stderr.exp \
@@ -86,5 +87,5 @@
null_socket overlap \
realloc1 realloc2 realloc3 scalar scalar_fork \
- scalar_supp sigaltstack signal2 \
+ scalar_supp scalar_vfork sigaltstack signal2 \
str_tester supp1 supp2 suppfree \
trivialleak weirdioctl \
@@ -141,4 +142,5 @@
scalar_fork_SOURCES = scalar_fork.c
scalar_supp_SOURCES = scalar_supp.c
+scalar_vfork_SOURCES = scalar_vfork.c
signal2_SOURCES = signal2.c
supp1_SOURCES = supp.c
--- valgrind/memcheck/tests/scalar.c #1.11:1.12
@@ -163,7 +163,9 @@ int main(void)
SY(__NR_getegid);
- // __NR_acct 51
+ // __NR_acct 51 --> sys_acct()
+ GO(__NR_acct, "1s 1m");
+ SY(__NR_acct, s0);
- // __NR_umount2 52
+ // __NR_umount2 52 --> sys_umount()
GO(__NR_umount2, "2s 1m");
SY(__NR_umount2, s0, i0);
--- valgrind/memcheck/tests/scalar.stderr.exp #1.10:1.11
@@ -363,4 +363,18 @@
-----------------------------------------------------
-----------------------------------------------------
+ 51: __NR_acct 1s 1m
+-----------------------------------------------------
+
+Syscall param acct(filename) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param acct(filename) 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
+-----------------------------------------------------
52: __NR_umount2 2s 1m
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 13:29:29
|
CVS commit by nethercote:
Converted lookup_dcookie.
M +10 -6 coregrind/vg_syscalls.c 1.180
M +2 -0 include/x86-linux/vki_arch.h 1.3
M +9 -3 memcheck/tests/scalar.c 1.11
M +39 -4 memcheck/tests/scalar.stderr.exp 1.10
M +1 -0 memcheck/tests/scalar.vgtest 1.3
--- valgrind/coregrind/vg_syscalls.c #1.179:1.180
@@ -1376,11 +1376,15 @@ PRE(quotactl)
}
-PRE(lookup_dcookie)
+// XXX: this is only suitable for 32-bit platforms
+PREx(sys_lookup_dcookie, 0)
{
- PRINT("lookup_dcookie (0x%llx, %p, %d)", LOHI64(arg1,arg2), arg3, arg4);
+ PRINT("sys_lookup_dcookie (0x%llx, %p, %d)", LOHI64(arg1,arg2), arg3, arg4);
+ PRE_REG_READ4(long, "lookup_dcookie",
+ vki_u32, cookie_low32, vki_u32, cookie_high32,
+ char *, buf, vki_size_t, len);
PRE_MEM_WRITE( "lookup_dcookie(buf)", arg3, arg4);
}
-POST(lookup_dcookie)
+POST(sys_lookup_dcookie)
{
if (arg3 != (Addr)NULL)
@@ -6128,5 +6132,5 @@ static const struct sys_info sys_info[]
SYSX_(251, sys_ni_syscall), // 251 * P
SYSX_(__NR_exit_group, sys_exit_group), // 252 *
- SYSBA(lookup_dcookie, 0), // 253 sys_lookup_dcookie *
+ SYSXY(__NR_lookup_dcookie, sys_lookup_dcookie), // 253 (*/32/64) L
SYSBA(epoll_create, 0), // 254 sys_epoll_create *
--- valgrind/include/x86-linux/vki_arch.h #1.2:1.3
@@ -51,4 +51,6 @@ typedef unsigned long long __vki_u64;
typedef unsigned short vki_u16;
+typedef unsigned int vki_u32;
+
//----------------------------------------------------------------------
// From linux-2.6.8.1/include/asm-i386/page.h
--- valgrind/memcheck/tests/scalar.c #1.10:1.11
@@ -20,6 +20,6 @@ int main(void)
// __NR_read 3 --> sys_read()
// Nb: here we are also getting an error from the syscall arg itself.
- GO(__NR_read, "1+3s 0m");
- SY(__NR_read+i0, i0, s0, i0);
+ GO(__NR_read, "1+3s 1m");
+ SY(__NR_read+i0, i0, s0, i0+1);
// __NR_write 4 --> sys_write()
@@ -408,4 +408,6 @@ int main(void)
// __NR_fcntl64 221
+ // XXX: from here on in, not present in early 2.4 kernels
+
// 222 --> sys_ni_syscall()
GO(222, "0e");
@@ -449,5 +451,9 @@ int main(void)
// __NR_exit_group 252
- // __NR_lookup_dcookie 253
+
+ // __NR_lookup_dcookie 253 --> sys_lookup_dcookie()
+ GO(__NR_lookup_dcookie, "4s 1m");
+ SY(__NR_lookup_dcookie, i0, i0, s0, i0+1);
+
// __NR_epoll_create 254
// __NR_epoll_ctl 255
--- valgrind/memcheck/tests/scalar.stderr.exp #1.9:1.10
@@ -1,4 +1,4 @@
-----------------------------------------------------
- 3: __NR_read 1+3s 0m
+ 3: __NR_read 1+3s 1m
-----------------------------------------------------
Syscall param (syscallno) contains uninitialised byte(s)
@@ -21,4 +21,10 @@
by 0x........: __libc_start_main (...libc...)
by 0x........: ...
+
+Syscall param read(buf) 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
-----------------------------------------------------
4: __NR_write 3s 1m
@@ -313,4 +319,7 @@
by 0x........: ...
+More than 50 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
+
Syscall param umount(path) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
@@ -322,7 +331,4 @@
-----------------------------------------------------
-More than 50 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
-
Syscall param setuid16(uid) contains uninitialised byte(s)
at 0x........: syscall (in /...libc...)
@@ -458,4 +464,33 @@
-----------------------------------------------------
-----------------------------------------------------
+253: __NR_lookup_dcookie 4s 1m
+-----------------------------------------------------
+
+Syscall param lookup_dcookie(cookie_low32) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param lookup_dcookie(cookie_high32) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param lookup_dcookie(buf) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param lookup_dcookie(len) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param lookup_dcookie(buf) 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
+-----------------------------------------------------
9999: 9999 1e
-----------------------------------------------------
--- valgrind/memcheck/tests/scalar.vgtest #1.2:1.3
@@ -1,3 +1,4 @@
prog: scalar
vgopts: -q
+args: < scalar.c
delete: tmp_write_file_foo
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 11:25:41
|
CVS commit by nethercote: CVS fixups: cvs add files I forgot to before; add .cvsignore entries. A scalar_fork.c 1.1 [no copyright] A scalar_fork.stderr.exp 1.1 A scalar_fork.vgtest 1.1 M +2 -0 .cvsignore 1.24 --- valgrind/memcheck/tests/.cvsignore #1.23:1.24 @@ -50,4 +50,6 @@ realloc3 scalar +scalar_fork +scalar_supp sigaltstack signal2 |
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 11:19:39
|
CVS commit by nethercote:
Converted uname(); annotated some obsolete ones.
M +32 -32 coregrind/vg_syscalls.c 1.179
M +4 -0 memcheck/tests/scalar.c 1.10
M +14 -0 memcheck/tests/scalar.stderr.exp 1.9
--- valgrind/coregrind/vg_syscalls.c #1.178:1.179
@@ -5095,12 +5095,12 @@ PREx(sys_unlink, MayBlock)
}
-PRE(uname)
+PREx(sys_newuname, 0)
{
- /* int uname(struct utsname *buf); */
- PRINT("uname ( %p )",arg1);
+ PRINT("sys_newuname ( %p )", arg1);
+ PRE_REG_READ1(long, "uname", struct new_utsname *, buf);
PRE_MEM_WRITE( "uname(buf)", arg1, sizeof(struct vki_new_utsname) );
}
-POST(uname)
+POST(sys_newuname)
{
if (arg1 != (UWord)NULL) {
@@ -5835,10 +5835,10 @@ static const struct sys_info sys_info[]
SYSX_(__NR_chmod, sys_chmod), // 15 * P
- // lchown sys_lchown16 ## // 16
+ // (lchown, sys_lchown16), // 16 ##
SYSX_(__NR_break, sys_ni_syscall), // 17 * P
- // oldstat sys_stat // 18 *
+ // (__NR_oldstat, sys_stat), // 18 * L -- obsolete
SYSX_(__NR_lseek, sys_lseek), // 19 * P
- SYSX_(__NR_getpid, sys_getpid), // 20 *
+ SYSX_(__NR_getpid, sys_getpid), // 20 * P
SYSX_(__NR_mount, sys_mount), // 21 * L
SYSX_(__NR_umount, sys_oldumount), // 22 * L
@@ -5849,6 +5849,6 @@ static const struct sys_info sys_info[]
SYSBA(ptrace, 0), // 26 sys_ptrace ()
SYSB_(alarm, NBRunInLWP), // 27 sys_alarm *
- // oldfstat 28 sys_fstat *
- SYSX_(__NR_pause, sys_pause), // 29 *
+ // (__NR_oldfstat, sys_fstat), // 28 * L -- obsolete
+ SYSX_(__NR_pause, sys_pause), // 29 * P
SYSB_(utime, MayBlock), // 30 sys_utime *
@@ -5886,5 +5886,5 @@ static const struct sys_info sys_info[]
SYSBA(setpgid, 0), // 57 sys_setpgid *
SYSX_(__NR_ulimit, sys_ni_syscall), // 58 * P
- // oldolduname 59 sys_olduname
+ // (__NR_oldolduname, sys_olduname), // 59 (?) L -- obsolete
SYSB_(umask, 0), // 60 sys_umask *
@@ -5916,5 +5916,5 @@ static const struct sys_info sys_info[]
SYSB_(select, MayBlock), // 82 old_select
SYSB_(symlink, MayBlock), // 83 sys_symlink *
- // oldlstat 84 sys_lstat *
+ // (__NR_oldlstat, sys_lstat), // 84 * L -- obsolete
SYSBA(readlink, 0), // 85 sys_readlink *
@@ -5946,5 +5946,5 @@ static const struct sys_info sys_info[]
SYSBA(lstat, 0), // 107 sys_newlstat *
SYSBA(fstat, 0), // 108 sys_newfstat *
- // olduname 109 sys_uname
+ // (__NR_olduname, sys_uname), // 109 (?) L -- obsolete
SYSB_(iopl, 0), // 110 sys_iopl
@@ -5962,5 +5962,5 @@ static const struct sys_info sys_info[]
SYSB_(clone, Special), // 120 sys_clone (very non-gen)
// setdomainname 121 sys_setdomainname *
- SYSBA(uname, 0), // 122 sys_newuname *
+ SYSXY(__NR_uname, sys_newuname), // 122 * P
SYSB_(modify_ldt, Special), // 123 sys_modify_ldt (x86,amd64)
SYSBA(adjtimex, 0), // 124 sys_adjtimex *
--- valgrind/memcheck/tests/scalar.c #1.9:1.10
@@ -266,5 +266,9 @@ int main(void)
// __NR_clone 120
// __NR_setdomainname 121
+
// __NR_uname 122
+ GO(__NR_uname, "1s 1m");
+ SY(__NR_uname, s0);
+
// __NR_modify_ldt 123
// __NR_adjtimex 124
--- valgrind/memcheck/tests/scalar.stderr.exp #1.8:1.9
@@ -400,4 +400,18 @@
-----------------------------------------------------
-----------------------------------------------------
+122: __NR_uname 1s 1m
+-----------------------------------------------------
+
+Syscall param uname(buf) contains uninitialised byte(s)
+ at 0x........: syscall (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+
+Syscall param uname(buf) 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
+-----------------------------------------------------
127: __NR_create_module 0e
-----------------------------------------------------
|
|
From: Nicholas N. <nj...@ca...> - 2004-11-12 11:02:11
|
CVS commit by nethercote:
Added a syscall flag "NBRunInLWP" for non-blocking syscalls that must
nonetheless be run in LWP context. Just makes things clearer.
M +21 -14 vg_syscalls.c 1.178
--- valgrind/coregrind/vg_syscalls.c #1.177:1.178
@@ -1070,5 +1070,6 @@ static Bool fd_allowed(Int fd, const Cha
#define Special (1 << 0)
#define MayBlock (1 << 1)
-#define PostOnFail (1 << 2)
+#define NBRunInLWP (1 << 2) // non-blocking, but must run in LWP context
+#define PostOnFail (1 << 3)
#define PRE(x) static void before_##x(ThreadId tid, ThreadState *tst)
@@ -5847,5 +5848,5 @@ static const struct sys_info sys_info[]
// stime 25 sys_stime *
SYSBA(ptrace, 0), // 26 sys_ptrace ()
- SYSB_(alarm, MayBlock), /* not blocking, but must run in LWP context */ // 27 sys_alarm *
+ SYSB_(alarm, NBRunInLWP), // 27 sys_alarm *
// oldfstat 28 sys_fstat *
SYSX_(__NR_pause, sys_pause), // 29 *
@@ -5902,5 +5903,5 @@ static const struct sys_info sys_info[]
SYSB_(setregid, 0), // 71 sys_setregid16 ##
SYSB_(sigsuspend, MayBlock), // 72 sys_sigsuspend
- SYSBA(sigpending, MayBlock), /* not blocking, but must run in LWP context */ // 73 sys_sigpending *
+ SYSBA(sigpending, NBRunInLWP), // 73 sys_sigpending *
// sethostname 74 sys_sethostname *
@@ -5939,7 +5940,7 @@ static const struct sys_info sys_info[]
SYSBA(socketcall, MayBlock), // 102 sys_socketcall *
SYSBA(syslog, MayBlock), // 103 sys_syslog *
- SYSBA(setitimer, MayBlock), /* not blocking, but must run in LWP context */ // 104 sys_setitimer *
+ SYSBA(setitimer, NBRunInLWP), // 104 sys_setitimer *
- SYSBA(getitimer, MayBlock), /* not blocking, but must run in LWP context */ // 105 sys_getitimer *
+ SYSBA(getitimer, NBRunInLWP), // 105 sys_getitimer *
SYSBA(stat, 0), // 106 sys_newstat *
SYSBA(lstat, 0), // 107 sys_newlstat *
@@ -6028,5 +6029,5 @@ static const struct sys_info sys_info[]
SYSBA(rt_sigprocmask, SIG_SIM), // 175 sys_rt_sigprocmask *
- SYSBA(rt_sigpending, MayBlock), /* not blocking, but must run in LWP context */ // 176 sys_rt_sigpending *
+ SYSBA(rt_sigpending, NBRunInLWP), // 176 sys_rt_sigpending *
SYSBA(rt_sigtimedwait, MayBlock), // 177 sys_rt_sigtimedwait *
SYSBA(rt_sigqueueinfo, 0), // 178 sys_rt_sigqueueinfo *
@@ -6186,4 +6187,5 @@ Bool VG_(pre_syscall) ( ThreadId tid )
Bool isSpecial = False;
Bool mayBlock = False;
+ Bool runInLWP = False;
Bool syscall_done = False; /* we actually ran the syscall */
@@ -6236,6 +6238,12 @@ Bool VG_(pre_syscall) ( ThreadId tid )
}
- isSpecial = flags & Special;
- mayBlock = flags & MayBlock;
+ {
+ Bool nbrunInLWP = ( flags & NBRunInLWP ? True : False );
+ isSpecial = ( flags & Special ? True : False );
+ mayBlock = ( flags & MayBlock ? True : False );
+ runInLWP = mayBlock || nbrunInLWP;
+ // At most one of these should be true
+ vg_assert( isSpecial + mayBlock + nbrunInLWP <= 1 );
+ }
tst->sys_flags = flags;
@@ -6252,5 +6259,5 @@ Bool VG_(pre_syscall) ( ThreadId tid )
VG_(getpid)(), tid, syscallno,
isSpecial ? " special" : "",
- mayBlock ? " blocking" : "");
+ runInLWP ? " runInLWP" : "");
if (isSpecial) {
@@ -6260,5 +6267,5 @@ Bool VG_(pre_syscall) ( ThreadId tid )
appropriate tests, but also performs the syscall itself and
sets the result. Special syscalls cannot block. */
- vg_assert(mayBlock == 0);
+ vg_assert(!mayBlock && !runInLWP);
(sys->before)(tst->tid, tst);
@@ -6276,5 +6283,5 @@ Bool VG_(pre_syscall) ( ThreadId tid )
PRINT(" ==> %lld (0x%llx)\n", (Long)(Word)res, (ULong)res);
syscall_done = True;
- } else if (mayBlock) {
+ } else if (runInLWP) {
/* Issue to worker. If we're waiting on the syscall because
it's in the hands of the ProxyLWP, then set the thread
|
|
From: <js...@ac...> - 2004-11-12 03:53:20
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2004-11-12 03:50:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT realloc2.o -MD -MP -MF ".deps/realloc2.Tpo" -c -o realloc2.o realloc2.c; \ then mv -f ".deps/realloc2.Tpo" ".deps/realloc2.Po"; else rm -f ".deps/realloc2.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o realloc2 realloc2.o if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT realloc3.o -MD -MP -MF ".deps/realloc3.Tpo" -c -o realloc3.o realloc3.c; \ then mv -f ".deps/realloc3.Tpo" ".deps/realloc3.Po"; else rm -f ".deps/realloc3.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o realloc3 realloc3.o if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT scalar.o -MD -MP -MF ".deps/scalar.Tpo" -c -o scalar.o scalar.c; \ then mv -f ".deps/scalar.Tpo" ".deps/scalar.Po"; else rm -f ".deps/scalar.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o scalar scalar.o make[5]: *** No rule to make target `scalar_fork.c', needed by `scalar_fork.o'. Stop. make[5]: Leaving directory `/home/sewardj/ValgrindABT/valgrind/memcheck/tests' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/home/sewardj/ValgrindABT/valgrind/memcheck/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/home/sewardj/ValgrindABT/valgrind/memcheck/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/home/sewardj/ValgrindABT/valgrind/memcheck' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/home/sewardj/ValgrindABT/valgrind' make: *** [check] Error 2 |
|
From: Tom H. <to...@co...> - 2004-11-12 03:21:44
|
Nightly build on dunsmere ( Fedora Core 3 ) started at 2004-11-12 03:20:03 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT realloc2.o -MD -MP -MF ".deps/realloc2.Tpo" -c -o realloc2.o realloc2.c; \ then mv -f ".deps/realloc2.Tpo" ".deps/realloc2.Po"; else rm -f ".deps/realloc2.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o realloc2 realloc2.o if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT realloc3.o -MD -MP -MF ".deps/realloc3.Tpo" -c -o realloc3.o realloc3.c; \ then mv -f ".deps/realloc3.Tpo" ".deps/realloc3.Po"; else rm -f ".deps/realloc3.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o realloc3 realloc3.o if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT scalar.o -MD -MP -MF ".deps/scalar.Tpo" -c -o scalar.o scalar.c; \ then mv -f ".deps/scalar.Tpo" ".deps/scalar.Po"; else rm -f ".deps/scalar.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o scalar scalar.o make[5]: *** No rule to make target `scalar_fork.c', needed by `scalar_fork.o'. Stop. make[5]: Leaving directory `/tmp/valgrind.12513/valgrind/memcheck/tests' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.12513/valgrind/memcheck/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.12513/valgrind/memcheck/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.12513/valgrind/memcheck' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.12513/valgrind' make: *** [check] Error 2 |
|
From: Tom H. <th...@cy...> - 2004-11-12 03:16:51
|
Nightly build on audi ( Red Hat 9 ) started at 2004-11-12 03:15:02 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT realloc2.o -MD -MP -MF ".deps/realloc2.Tpo" -c -o realloc2.o realloc2.c; \ then mv -f ".deps/realloc2.Tpo" ".deps/realloc2.Po"; else rm -f ".deps/realloc2.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o realloc2 realloc2.o if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT realloc3.o -MD -MP -MF ".deps/realloc3.Tpo" -c -o realloc3.o realloc3.c; \ then mv -f ".deps/realloc3.Tpo" ".deps/realloc3.Po"; else rm -f ".deps/realloc3.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o realloc3 realloc3.o if gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../../include -Winline -Wall -Wshadow -g -MT scalar.o -MD -MP -MF ".deps/scalar.Tpo" -c -o scalar.o scalar.c; \ then mv -f ".deps/scalar.Tpo" ".deps/scalar.Po"; else rm -f ".deps/scalar.Tpo"; exit 1; fi gcc -Winline -Wall -Wshadow -g -o scalar scalar.o make[5]: *** No rule to make target `scalar_fork.c', needed by `scalar_fork.o'. Stop. make[5]: Leaving directory `/tmp/valgrind.7924/valgrind/memcheck/tests' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.7924/valgrind/memcheck/tests' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.7924/valgrind/memcheck/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.7924/valgrind/memcheck' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.7924/valgrind' make: *** [check] Error 2 |