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

01cf8b
commit 917e423073c5eacffbad83008c27c8e61e0e342a
01cf8b
Author: Mark Wielaard <mark@klomp.org>
01cf8b
Date:   Mon May 20 00:09:59 2019 +0200
01cf8b
01cf8b
    Make memcheck/tests/arm64-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
    Pass really invalid arguments to setuid, setgid, acct and fchown.
01cf8b
    Make setresgid, setresuid, setregid and setreuid always succeed.
01cf8b
01cf8b
diff --git a/memcheck/tests/arm64-linux/scalar.c b/memcheck/tests/arm64-linux/scalar.c
01cf8b
index fd49db6..622ea1c 100644
01cf8b
--- a/memcheck/tests/arm64-linux/scalar.c
01cf8b
+++ b/memcheck/tests/arm64-linux/scalar.c
01cf8b
@@ -136,7 +136,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
@@ -229,7 +229,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
@@ -249,7 +249,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
@@ -340,11 +340,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 arm64 only has rt_sigsuspend
01cf8b
    // XXX: how do you use this function?
01cf8b
@@ -447,7 +447,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
@@ -733,7 +733,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
@@ -757,7 +757,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");