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

058efa
commit 917e423073c5eacffbad83008c27c8e61e0e342a
058efa
Author: Mark Wielaard <mark@klomp.org>
058efa
Date:   Mon May 20 00:09:59 2019 +0200
058efa
058efa
    Make memcheck/tests/arm64-linux/scalar test work under root.
058efa
    
058efa
    Running the testsuite as root isn't really recommended.
058efa
    But lets not make tests fail unnecessarily when running as root.
058efa
    Pass really invalid arguments to setuid, setgid, acct and fchown.
058efa
    Make setresgid, setresuid, setregid and setreuid always succeed.
058efa
058efa
diff --git a/memcheck/tests/arm64-linux/scalar.c b/memcheck/tests/arm64-linux/scalar.c
058efa
index fd49db6..622ea1c 100644
058efa
--- a/memcheck/tests/arm64-linux/scalar.c
058efa
+++ b/memcheck/tests/arm64-linux/scalar.c
058efa
@@ -136,7 +136,7 @@ int main(void)
058efa
 
058efa
    // __NR_setuid 23
058efa
    GO(__NR_setuid, "1s 0m");
058efa
-   SY(__NR_setuid, x0); FAIL;
058efa
+   SY(__NR_setuid, x0-1); FAIL;
058efa
 
058efa
    // __NR_getuid 24
058efa
    GO(__NR_getuid, "0s 0m");
058efa
@@ -229,7 +229,7 @@ int main(void)
058efa
 
058efa
    // __NR_setgid 46
058efa
    GO(__NR_setgid, "1s 0m");
058efa
-   SY(__NR_setgid, x0); FAIL;
058efa
+   SY(__NR_setgid, x0-1); FAIL;
058efa
 
058efa
    // __NR_getgid 47
058efa
    GO(__NR_getgid, "0s 0m");
058efa
@@ -249,7 +249,7 @@ int main(void)
058efa
 
058efa
    // __NR_acct 51
058efa
    GO(__NR_acct, "1s 1m");
058efa
-   SY(__NR_acct, x0); FAIL;
058efa
+   SY(__NR_acct, x0-1); FAIL;
058efa
 
058efa
    // __NR_umount2 52
058efa
    GO(__NR_umount2, "2s 1m");
058efa
@@ -340,11 +340,11 @@ int main(void)
058efa
 
058efa
    // __NR_setreuid 70
058efa
    GO(__NR_setreuid, "2s 0m");
058efa
-   SY(__NR_setreuid, x0, x0); FAIL;
058efa
+   SY(__NR_setreuid, x0-1, x0-1); SUCC;
058efa
 
058efa
    // __NR_setregid 71
058efa
    GO(__NR_setregid, "2s 0m");
058efa
-   SY(__NR_setregid, x0, x0); FAIL;
058efa
+   SY(__NR_setregid, x0-1, x0-1); SUCC;
058efa
 
058efa
    // __NR_sigsuspend arm64 only has rt_sigsuspend
058efa
    // XXX: how do you use this function?
058efa
@@ -447,7 +447,7 @@ int main(void)
058efa
 
058efa
    // __NR_fchown 95
058efa
    GO(__NR_fchown, "3s 0m");
058efa
-   SY(__NR_fchown, x0, x0, x0); FAIL;
058efa
+   SY(__NR_fchown, x0-1, x0, x0); FAIL;
058efa
 
058efa
    // __NR_getpriority 96
058efa
    GO(__NR_getpriority, "2s 0m");
058efa
@@ -733,7 +733,7 @@ int main(void)
058efa
 
058efa
    // __NR_setresuid 164
058efa
    GO(__NR_setresuid, "3s 0m");
058efa
-   SY(__NR_setresuid, x0, x0, x0); FAIL;
058efa
+   SY(__NR_setresuid, x0-1, x0-1, x0-1); SUCC;
058efa
 
058efa
    // __NR_getresuid 165
058efa
    GO(__NR_getresuid, "3s 3m");
058efa
@@ -757,7 +757,7 @@ int main(void)
058efa
 
058efa
    // __NR_setresgid 170
058efa
    GO(__NR_setresgid, "3s 0m");
058efa
-   SY(__NR_setresgid, x0, x0, x0); FAIL;
058efa
+   SY(__NR_setresgid, x0-1, x0-1, x0-1); SUCC;
058efa
 
058efa
    // __NR_getresgid 171
058efa
    GO(__NR_getresgid, "3s 3m");