|
|
01cf8b |
commit abc09f23e1ad55a07beb827aef969acfe6c496ef
|
|
|
01cf8b |
Author: Mark Wielaard <mark@klomp.org>
|
|
|
01cf8b |
Date: Mon May 20 13:08:41 2019 +0200
|
|
|
01cf8b |
|
|
|
01cf8b |
Make memcheck/tests/x86-linux/scalar test work under root.
|
|
|
01cf8b |
|
|
|
01cf8b |
Running the testsuite as root isn't really recommended.
|
|
|
01cf8b |
But lets not make tests fail unnecessarily when running as root.
|
|
|
01cf8b |
Similar to the arm64-linux/scalar fixes. Plus 32bit variants that
|
|
|
01cf8b |
don't exist on arm64.
|
|
|
01cf8b |
|
|
|
01cf8b |
Pass really invalid arguments to setuid[32], setgid[32], acct, fchown[32].
|
|
|
01cf8b |
Make setresgid[32], setresuid[32], setregid[32], setreuid[32] always succeed.
|
|
|
01cf8b |
|
|
|
01cf8b |
diff --git a/memcheck/tests/x86-linux/scalar.c b/memcheck/tests/x86-linux/scalar.c
|
|
|
01cf8b |
index 213a5ad..52f0d4e 100644
|
|
|
01cf8b |
--- a/memcheck/tests/x86-linux/scalar.c
|
|
|
01cf8b |
+++ b/memcheck/tests/x86-linux/scalar.c
|
|
|
01cf8b |
@@ -145,7 +145,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setuid 23
|
|
|
01cf8b |
GO(__NR_setuid, "1s 0m");
|
|
|
01cf8b |
- SY(__NR_setuid, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setuid, x0-1); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getuid 24
|
|
|
01cf8b |
GO(__NR_getuid, "0s 0m");
|
|
|
01cf8b |
@@ -238,7 +238,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setgid 46
|
|
|
01cf8b |
GO(__NR_setgid, "1s 0m");
|
|
|
01cf8b |
- SY(__NR_setgid, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setgid, x0-1); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getgid 47
|
|
|
01cf8b |
GO(__NR_getgid, "0s 0m");
|
|
|
01cf8b |
@@ -258,7 +258,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_acct 51
|
|
|
01cf8b |
GO(__NR_acct, "1s 1m");
|
|
|
01cf8b |
- SY(__NR_acct, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_acct, x0-1); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_umount2 52
|
|
|
01cf8b |
GO(__NR_umount2, "2s 1m");
|
|
|
01cf8b |
@@ -349,11 +349,11 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setreuid 70
|
|
|
01cf8b |
GO(__NR_setreuid, "2s 0m");
|
|
|
01cf8b |
- SY(__NR_setreuid, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setreuid, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setregid 71
|
|
|
01cf8b |
GO(__NR_setregid, "2s 0m");
|
|
|
01cf8b |
- SY(__NR_setregid, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setregid, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_sigsuspend 72
|
|
|
01cf8b |
// XXX: how do you use this function?
|
|
|
01cf8b |
@@ -456,7 +456,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_fchown 95
|
|
|
01cf8b |
GO(__NR_fchown, "3s 0m");
|
|
|
01cf8b |
- SY(__NR_fchown, x0, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_fchown, x0-1, x0, x0); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getpriority 96
|
|
|
01cf8b |
GO(__NR_getpriority, "2s 0m");
|
|
|
01cf8b |
@@ -742,7 +742,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setresuid 164
|
|
|
01cf8b |
GO(__NR_setresuid, "3s 0m");
|
|
|
01cf8b |
- SY(__NR_setresuid, x0, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setresuid, x0-1, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getresuid 165
|
|
|
01cf8b |
GO(__NR_getresuid, "3s 3m");
|
|
|
01cf8b |
@@ -766,7 +766,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setresgid 170
|
|
|
01cf8b |
GO(__NR_setresgid, "3s 0m");
|
|
|
01cf8b |
- SY(__NR_setresgid, x0, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setresgid, x0-1, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getresgid 171
|
|
|
01cf8b |
GO(__NR_getresgid, "3s 3m");
|
|
|
01cf8b |
@@ -923,11 +923,11 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setreuid32 203
|
|
|
01cf8b |
GO(__NR_setreuid32, "2s 0m");
|
|
|
01cf8b |
- SY(__NR_setreuid32, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setreuid32, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setregid32 204
|
|
|
01cf8b |
GO(__NR_setregid32, "2s 0m");
|
|
|
01cf8b |
- SY(__NR_setregid32, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setregid32, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getgroups32 205
|
|
|
01cf8b |
GO(__NR_getgroups32, "2s 1m");
|
|
|
01cf8b |
@@ -939,11 +939,11 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_fchown32 207
|
|
|
01cf8b |
GO(__NR_fchown32, "3s 0m");
|
|
|
01cf8b |
- SY(__NR_fchown32, x0, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_fchown32, x0-1, x0, x0); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setresuid32 208
|
|
|
01cf8b |
GO(__NR_setresuid32, "3s 0m");
|
|
|
01cf8b |
- SY(__NR_setresuid32, x0, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setresuid32, x0-1, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getresuid32 209
|
|
|
01cf8b |
GO(__NR_getresuid32, "3s 3m");
|
|
|
01cf8b |
@@ -951,7 +951,7 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setresgid32 210
|
|
|
01cf8b |
GO(__NR_setresgid32, "3s 0m");
|
|
|
01cf8b |
- SY(__NR_setresgid32, x0, x0, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setresgid32, x0-1, x0-1, x0-1); SUCC;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_getresgid32 211
|
|
|
01cf8b |
GO(__NR_getresgid32, "3s 3m");
|
|
|
01cf8b |
@@ -963,11 +963,11 @@ int main(void)
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setuid32 213
|
|
|
01cf8b |
GO(__NR_setuid32, "1s 0m");
|
|
|
01cf8b |
- SY(__NR_setuid32, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setuid32, x0-1); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setgid32 214
|
|
|
01cf8b |
GO(__NR_setgid32, "1s 0m");
|
|
|
01cf8b |
- SY(__NR_setgid32, x0); FAIL;
|
|
|
01cf8b |
+ SY(__NR_setgid32, x0-1); FAIL;
|
|
|
01cf8b |
|
|
|
01cf8b |
// __NR_setfsuid32 215
|
|
|
01cf8b |
GO(__NR_setfsuid32, "1s 0m");
|