Blame SOURCES/valgrind-3.15.0-scalar-x86.patch

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");