diff --git a/valgrind-3.15.0-scalar-x86.patch b/valgrind-3.15.0-scalar-x86.patch new file mode 100644 index 0000000..32fd243 --- /dev/null +++ b/valgrind-3.15.0-scalar-x86.patch @@ -0,0 +1,137 @@ +commit abc09f23e1ad55a07beb827aef969acfe6c496ef +Author: Mark Wielaard +Date: Mon May 20 13:08:41 2019 +0200 + + Make memcheck/tests/x86-linux/scalar test work under root. + + Running the testsuite as root isn't really recommended. + But lets not make tests fail unnecessarily when running as root. + Similar to the arm64-linux/scalar fixes. Plus 32bit variants that + don't exist on arm64. + + Pass really invalid arguments to setuid[32], setgid[32], acct, fchown[32]. + Make setresgid[32], setresuid[32], setregid[32], setreuid[32] always succeed. + +diff --git a/memcheck/tests/x86-linux/scalar.c b/memcheck/tests/x86-linux/scalar.c +index 213a5ad..52f0d4e 100644 +--- a/memcheck/tests/x86-linux/scalar.c ++++ b/memcheck/tests/x86-linux/scalar.c +@@ -145,7 +145,7 @@ int main(void) + + // __NR_setuid 23 + GO(__NR_setuid, "1s 0m"); +- SY(__NR_setuid, x0); FAIL; ++ SY(__NR_setuid, x0-1); FAIL; + + // __NR_getuid 24 + GO(__NR_getuid, "0s 0m"); +@@ -238,7 +238,7 @@ int main(void) + + // __NR_setgid 46 + GO(__NR_setgid, "1s 0m"); +- SY(__NR_setgid, x0); FAIL; ++ SY(__NR_setgid, x0-1); FAIL; + + // __NR_getgid 47 + GO(__NR_getgid, "0s 0m"); +@@ -258,7 +258,7 @@ int main(void) + + // __NR_acct 51 + GO(__NR_acct, "1s 1m"); +- SY(__NR_acct, x0); FAIL; ++ SY(__NR_acct, x0-1); FAIL; + + // __NR_umount2 52 + GO(__NR_umount2, "2s 1m"); +@@ -349,11 +349,11 @@ int main(void) + + // __NR_setreuid 70 + GO(__NR_setreuid, "2s 0m"); +- SY(__NR_setreuid, x0, x0); FAIL; ++ SY(__NR_setreuid, x0-1, x0-1); SUCC; + + // __NR_setregid 71 + GO(__NR_setregid, "2s 0m"); +- SY(__NR_setregid, x0, x0); FAIL; ++ SY(__NR_setregid, x0-1, x0-1); SUCC; + + // __NR_sigsuspend 72 + // XXX: how do you use this function? +@@ -456,7 +456,7 @@ int main(void) + + // __NR_fchown 95 + GO(__NR_fchown, "3s 0m"); +- SY(__NR_fchown, x0, x0, x0); FAIL; ++ SY(__NR_fchown, x0-1, x0, x0); FAIL; + + // __NR_getpriority 96 + GO(__NR_getpriority, "2s 0m"); +@@ -742,7 +742,7 @@ int main(void) + + // __NR_setresuid 164 + GO(__NR_setresuid, "3s 0m"); +- SY(__NR_setresuid, x0, x0, x0); FAIL; ++ SY(__NR_setresuid, x0-1, x0-1, x0-1); SUCC; + + // __NR_getresuid 165 + GO(__NR_getresuid, "3s 3m"); +@@ -766,7 +766,7 @@ int main(void) + + // __NR_setresgid 170 + GO(__NR_setresgid, "3s 0m"); +- SY(__NR_setresgid, x0, x0, x0); FAIL; ++ SY(__NR_setresgid, x0-1, x0-1, x0-1); SUCC; + + // __NR_getresgid 171 + GO(__NR_getresgid, "3s 3m"); +@@ -923,11 +923,11 @@ int main(void) + + // __NR_setreuid32 203 + GO(__NR_setreuid32, "2s 0m"); +- SY(__NR_setreuid32, x0, x0); FAIL; ++ SY(__NR_setreuid32, x0-1, x0-1); SUCC; + + // __NR_setregid32 204 + GO(__NR_setregid32, "2s 0m"); +- SY(__NR_setregid32, x0, x0); FAIL; ++ SY(__NR_setregid32, x0-1, x0-1); SUCC; + + // __NR_getgroups32 205 + GO(__NR_getgroups32, "2s 1m"); +@@ -939,11 +939,11 @@ int main(void) + + // __NR_fchown32 207 + GO(__NR_fchown32, "3s 0m"); +- SY(__NR_fchown32, x0, x0, x0); FAIL; ++ SY(__NR_fchown32, x0-1, x0, x0); FAIL; + + // __NR_setresuid32 208 + GO(__NR_setresuid32, "3s 0m"); +- SY(__NR_setresuid32, x0, x0, x0); FAIL; ++ SY(__NR_setresuid32, x0-1, x0-1, x0-1); SUCC; + + // __NR_getresuid32 209 + GO(__NR_getresuid32, "3s 3m"); +@@ -951,7 +951,7 @@ int main(void) + + // __NR_setresgid32 210 + GO(__NR_setresgid32, "3s 0m"); +- SY(__NR_setresgid32, x0, x0, x0); FAIL; ++ SY(__NR_setresgid32, x0-1, x0-1, x0-1); SUCC; + + // __NR_getresgid32 211 + GO(__NR_getresgid32, "3s 3m"); +@@ -963,11 +963,11 @@ int main(void) + + // __NR_setuid32 213 + GO(__NR_setuid32, "1s 0m"); +- SY(__NR_setuid32, x0); FAIL; ++ SY(__NR_setuid32, x0-1); FAIL; + + // __NR_setgid32 214 + GO(__NR_setgid32, "1s 0m"); +- SY(__NR_setgid32, x0); FAIL; ++ SY(__NR_setgid32, x0-1); FAIL; + + // __NR_setfsuid32 215 + GO(__NR_setfsuid32, "1s 0m"); diff --git a/valgrind.spec b/valgrind.spec index 5f1ca8c..2c196b3 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -109,6 +109,9 @@ Patch10: valgrind-3.15.0-exp-sgcheck-no-aarch64.patch # commit 917e42 Make memcheck/tests/arm64-linux/scalar work under root Patch11: valgrind-3.15.0-scalar-arm64.patch +# commit abc09f Make memcheck/tests/x86-linux/scalar test work under root. +Patch12: valgrind-3.15.0-scalar-x86.patch + BuildRequires: glibc-devel %if %{build_openmpi} @@ -246,6 +249,7 @@ Valgrind User Manual for details. %patch9 -p1 %patch10 -p1 %patch11 -p1 +%patch12 -p1 %build @@ -466,9 +470,10 @@ fi %endif %changelog -* Sun May 17 2019 Mark Wielaard +* Mon May 20 2019 Mark Wielaard - Add valgrind-3.15.0-exp-sgcheck-no-aarch64.patch - Add valgrind-3.15.0-scalar-arm64.patch +- Add valgrind-3.15.0-scalar-x86.patch * Tue May 7 2019 Mark Wielaard - 3.15.0-4 - Add valgrind-3.15.0-arm64-ld-stpcpy.patch