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

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