]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
converted some more
authorNicholas Nethercote <n.nethercote@gmail.com>
Fri, 12 Nov 2004 19:55:08 +0000 (19:55 +0000)
committerNicholas Nethercote <n.nethercote@gmail.com>
Fri, 12 Nov 2004 19:55:08 +0000 (19:55 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@2976

coregrind/vg_syscalls.c
include/x86-linux/vki_arch.h
memcheck/tests/scalar.c
memcheck/tests/scalar.stderr.exp

index 90b4df0ca246c7a31a50510fdbf0e02853a31285..6c14bcb19cd4ce60343007fbc63250bc143da89e 100644 (file)
@@ -1649,10 +1649,10 @@ PRE(setfsgid)
    PRINT("setfsgid ( %d )", arg1);
 }
 
-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);
 }
 
 PRE(setresuid)
@@ -4528,10 +4528,10 @@ POST(sys_setpgid)
    VG_(main_pgrp) = VG_(getpgrp)();
 }
 
-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);
 }
 
 PRE(setresuid32)
@@ -4540,18 +4540,25 @@ PRE(setresuid32)
    PRINT("setresuid32(?) ( %d, %d, %d )", arg1, arg2, arg3);
 }
 
-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) );
 
    if (arg1 == VKI_RLIMIT_NOFILE) {
@@ -5403,20 +5410,20 @@ POST(sigprocmask)
 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)
 {
@@ -5902,13 +5909,13 @@ static const struct sys_info sys_info[] = {
    //   (__NR_sgetmask,         sys_sgetmask),     // 68 * (ANSI C)
    //   (__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 *
    SYSBA(gettimeofday,         0), // 78 sys_gettimeofday *
@@ -6059,13 +6066,13 @@ static const struct sys_info sys_info[] = {
    SYSBA(lstat64,              0), // 196 sys_lstat64 %%
    SYSBA(fstat64,              0), // 197 sys_fstat64 %%
    SYSB_(lchown32,             0), // 198 sys_lchown *
-   SYSX_(__NR_getuid32,         sys_getuid), // 199 *
+   SYSX_(__NR_getuid32,         sys_getuid),       // 199 *
 
-   SYSX_(__NR_getgid32,         sys_getgid), // 200 *
-   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_getgid32,         sys_getgid),       // 200 *
+   SYSX_(__NR_geteuid32,        sys_geteuid),      // 201 *
+   SYSX_(__NR_getegid32,        sys_getegid),      // 202 *
+   SYSX_(__NR_setreuid32,       sys_setreuid),     // 203 * (BSD4.3)
+   SYSX_(__NR_setregid32,       sys_setregid),     // 204 * (BSD4.3)
 
    SYSBA(getgroups32,          0), // 205 sys_getgroups *
    SYSB_(setgroups32,          0), // 206 sys_setgroups *
index e27542fd63122e92189489593066a830cd6f24a0..aed2b725add37c7ccccedc3aacc3939b02e6e547 100644 (file)
@@ -88,6 +88,8 @@ typedef __vki_restorefn_t __user *__vki_sigrestore_t;
 #define _VKI_NSIG_BPW  32
 #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];
 } vki_sigset_t;
index 18bae91040502908e34bb868c7f0487e8cdefb3b..9ee9e1474343b502837b42cecd7da193a6df2f18 100644 (file)
@@ -272,7 +272,7 @@ int main(void)
    GO(__NR_setsid, "0e");
    SY(__NR_setsid);
 
-   // __NR_sigaction 67
+   // __NR_sigaction 67 --> sys_sigaction()
    GO(__NR_sigaction, "3s 2m");
    SY(__NR_sigaction, x0, x0+1, x0+1);
 
@@ -282,15 +282,27 @@ int main(void)
    // __NR_ssetmask 69
    // (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
    // __NR_gettimeofday 78
@@ -478,7 +490,13 @@ int main(void)
    SY(__NR_getegid32);
 
    // __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
    // __NR_fchown32 207
index c86c37dd1dda89aebf11f48fae46858d37914104..db4aafc0ccda46817749c71748e4de533f5343ec 100644 (file)
@@ -768,6 +768,65 @@ Syscall param sigaction(oldact) points to unaddressable byte(s)
    by 0x........: __libc_start_main (...libc...)
    by 0x........: ...
  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
 -----------------------------------------------------
@@ -816,6 +875,32 @@ Syscall param uname(buf) points to unaddressable byte(s)
 202:      __NR_getegid32 0e
 -----------------------------------------------------
 -----------------------------------------------------
+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
 -----------------------------------------------------