Blame SOURCES/0122-tests-inject-nf.test-replace-getpid-with-geteuid.patch

097fad
From c5be5bb949988c262012e7f4763b1d658c1769b9 Mon Sep 17 00:00:00 2001
097fad
From: =?UTF-8?q?=C3=81kos=20Uzonyi?= <uzonyi.akos@gmail.com>
097fad
Date: Fri, 19 Jun 2020 12:06:42 +0200
097fad
Subject: [PATCH 122/138] tests/inject-nf.test: replace getpid with geteuid
097fad
097fad
Since we treat PIDs as signed integers, large values (>=2^31) will
097fad
cause overflow when we use printpid.
097fad
UIDs are treated as unsigned integers, so geteuid is a good alternative.
097fad
(getuid would be problematic, as it does not exists on alpha).
097fad
Also, on systems where geteuid32 exists, geteuid returns maximum 16 bit
097fad
values, so we have to use geteuid32 in this case.
097fad
097fad
[ldv: geteuid syscall was introduced on Alpha by Linux kernel commit
097fad
v5.1-rc1~160^2~3^2~1, so this test will not work on old Alpha kernels.]
097fad
097fad
* tests/inject-nf.c: Replace getpid with either geteuid32 or geteuid.
097fad
[__alpha__]: Remove.
097fad
[__NR_geteuid32]: New condition.
097fad
* tests/inject-nf.test (SYSCALL): Replace getpid with '/^geteuid(32)?$'.
097fad
Remove alpha workaround.
097fad
---
097fad
 tests/inject-nf.c    | 20 +++++++++-----------
097fad
 tests/inject-nf.test |  9 +--------
097fad
 2 files changed, 10 insertions(+), 19 deletions(-)
097fad
097fad
Index: strace-5.7/tests/inject-nf.c
097fad
===================================================================
097fad
--- strace-5.7.orig/tests/inject-nf.c	2020-09-09 14:50:44.159739392 +0200
097fad
+++ strace-5.7/tests/inject-nf.c	2020-09-09 14:56:17.193937896 +0200
097fad
@@ -16,28 +16,26 @@
097fad
 
097fad
 #include "raw_syscall.h"
097fad
 
097fad
-#ifdef __alpha__
097fad
-/* alpha has no getpid */
097fad
-# define SC_NR __NR_getpgrp
097fad
-# define SC_NAME "getpgrp"
097fad
-# define getpid getpgrp
097fad
+#ifdef __NR_geteuid32
097fad
+# define SC_NR __NR_geteuid32
097fad
+# define SC_NAME "geteuid32"
097fad
 #else
097fad
-# define SC_NR __NR_getpid
097fad
-# define SC_NAME "getpid"
097fad
+# define SC_NR __NR_geteuid
097fad
+# define SC_NAME "geteuid"
097fad
 #endif
097fad
 
097fad
 #ifdef raw_syscall_0
097fad
 # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err)
097fad
 #else
097fad
-/* No raw_syscall_0, let's use getpid() and hope for the best.  */
097fad
-# define INVOKE_SC(err) getpid()
097fad
+/* No raw_syscall_0, let's use geteuid() and hope for the best. */
097fad
+# define INVOKE_SC(err) geteuid()
097fad
 #endif
097fad
 
097fad
 /*
097fad
  * This prototype is intentionally different
097fad
  * from the prototype provided by <unistd.h>.
097fad
  */
097fad
-extern kernel_ulong_t getpid(void);
097fad
+extern kernel_ulong_t geteuid(void);
097fad
 
097fad
 int
097fad
 main(int ac, char **av)
097fad
@@ -45,7 +43,7 @@
097fad
 	assert(ac == 1 || ac == 2);
097fad
 
097fad
 	kernel_ulong_t expected =
097fad
-		(ac == 1) ? getpid() : strtoull(av[1], NULL, 0);
097fad
+		(ac == 1) ? geteuid() : strtoull(av[1], NULL, 0);
097fad
 	kernel_ulong_t err = 0;
097fad
 	kernel_ulong_t rc = INVOKE_SC(err);
097fad
 
097fad
Index: strace-5.7/tests/inject-nf.test
097fad
===================================================================
097fad
--- strace-5.7.orig/tests/inject-nf.test	2020-09-09 14:50:44.159739392 +0200
097fad
+++ strace-5.7/tests/inject-nf.test	2020-09-09 14:56:17.194937896 +0200
097fad
@@ -9,14 +9,7 @@
097fad
 
097fad
 . "${srcdir=.}/scno_tampering.sh"
097fad
 
097fad
-case "$STRACE_ARCH" in
097fad
-alpha)
097fad
-	SYSCALL=getpgrp
097fad
-	;;
097fad
-*)
097fad
-	SYSCALL=getpid
097fad
-	;;
097fad
-esac
097fad
+SYSCALL='/^geteuid(32)?$'
097fad
 
097fad
 run_prog
097fad
 prog="$args"
097fad
Index: strace-5.7/tests-m32/inject-nf.c
097fad
===================================================================
097fad
--- strace-5.7.orig/tests-m32/inject-nf.c	2019-09-25 03:02:03.000000000 +0200
097fad
+++ strace-5.7/tests-m32/inject-nf.c	2020-09-09 14:58:03.687001371 +0200
097fad
@@ -16,28 +16,26 @@
097fad
 
097fad
 #include "raw_syscall.h"
097fad
 
097fad
-#ifdef __alpha__
097fad
-/* alpha has no getpid */
097fad
-# define SC_NR __NR_getpgrp
097fad
-# define SC_NAME "getpgrp"
097fad
-# define getpid getpgrp
097fad
+#ifdef __NR_geteuid32
097fad
+# define SC_NR __NR_geteuid32
097fad
+# define SC_NAME "geteuid32"
097fad
 #else
097fad
-# define SC_NR __NR_getpid
097fad
-# define SC_NAME "getpid"
097fad
+# define SC_NR __NR_geteuid
097fad
+# define SC_NAME "geteuid"
097fad
 #endif
097fad
 
097fad
 #ifdef raw_syscall_0
097fad
 # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err)
097fad
 #else
097fad
-/* No raw_syscall_0, let's use getpid() and hope for the best.  */
097fad
-# define INVOKE_SC(err) getpid()
097fad
+/* No raw_syscall_0, let's use geteuid() and hope for the best. */
097fad
+# define INVOKE_SC(err) geteuid()
097fad
 #endif
097fad
 
097fad
 /*
097fad
  * This prototype is intentionally different
097fad
  * from the prototype provided by <unistd.h>.
097fad
  */
097fad
-extern kernel_ulong_t getpid(void);
097fad
+extern kernel_ulong_t geteuid(void);
097fad
 
097fad
 int
097fad
 main(int ac, char **av)
097fad
@@ -45,7 +43,7 @@
097fad
 	assert(ac == 1 || ac == 2);
097fad
 
097fad
 	kernel_ulong_t expected =
097fad
-		(ac == 1) ? getpid() : strtoull(av[1], NULL, 0);
097fad
+		(ac == 1) ? geteuid() : strtoull(av[1], NULL, 0);
097fad
 	kernel_ulong_t err = 0;
097fad
 	kernel_ulong_t rc = INVOKE_SC(err);
097fad
 
097fad
Index: strace-5.7/tests-m32/inject-nf.test
097fad
===================================================================
097fad
--- strace-5.7.orig/tests-m32/inject-nf.test	2018-12-25 00:46:43.000000000 +0100
097fad
+++ strace-5.7/tests-m32/inject-nf.test	2020-09-09 14:58:03.727001394 +0200
097fad
@@ -9,14 +9,7 @@
097fad
 
097fad
 . "${srcdir=.}/scno_tampering.sh"
097fad
 
097fad
-case "$STRACE_ARCH" in
097fad
-alpha)
097fad
-	SYSCALL=getpgrp
097fad
-	;;
097fad
-*)
097fad
-	SYSCALL=getpid
097fad
-	;;
097fad
-esac
097fad
+SYSCALL='/^geteuid(32)?$'
097fad
 
097fad
 run_prog
097fad
 prog="$args"
097fad
Index: strace-5.7/tests-mx32/inject-nf.c
097fad
===================================================================
097fad
--- strace-5.7.orig/tests-mx32/inject-nf.c	2019-09-25 03:02:03.000000000 +0200
097fad
+++ strace-5.7/tests-mx32/inject-nf.c	2020-09-09 14:58:03.708001383 +0200
097fad
@@ -16,28 +16,26 @@
097fad
 
097fad
 #include "raw_syscall.h"
097fad
 
097fad
-#ifdef __alpha__
097fad
-/* alpha has no getpid */
097fad
-# define SC_NR __NR_getpgrp
097fad
-# define SC_NAME "getpgrp"
097fad
-# define getpid getpgrp
097fad
+#ifdef __NR_geteuid32
097fad
+# define SC_NR __NR_geteuid32
097fad
+# define SC_NAME "geteuid32"
097fad
 #else
097fad
-# define SC_NR __NR_getpid
097fad
-# define SC_NAME "getpid"
097fad
+# define SC_NR __NR_geteuid
097fad
+# define SC_NAME "geteuid"
097fad
 #endif
097fad
 
097fad
 #ifdef raw_syscall_0
097fad
 # define INVOKE_SC(err) raw_syscall_0(SC_NR, &err)
097fad
 #else
097fad
-/* No raw_syscall_0, let's use getpid() and hope for the best.  */
097fad
-# define INVOKE_SC(err) getpid()
097fad
+/* No raw_syscall_0, let's use geteuid() and hope for the best. */
097fad
+# define INVOKE_SC(err) geteuid()
097fad
 #endif
097fad
 
097fad
 /*
097fad
  * This prototype is intentionally different
097fad
  * from the prototype provided by <unistd.h>.
097fad
  */
097fad
-extern kernel_ulong_t getpid(void);
097fad
+extern kernel_ulong_t geteuid(void);
097fad
 
097fad
 int
097fad
 main(int ac, char **av)
097fad
@@ -45,7 +43,7 @@
097fad
 	assert(ac == 1 || ac == 2);
097fad
 
097fad
 	kernel_ulong_t expected =
097fad
-		(ac == 1) ? getpid() : strtoull(av[1], NULL, 0);
097fad
+		(ac == 1) ? geteuid() : strtoull(av[1], NULL, 0);
097fad
 	kernel_ulong_t err = 0;
097fad
 	kernel_ulong_t rc = INVOKE_SC(err);
097fad
 
097fad
Index: strace-5.7/tests-mx32/inject-nf.test
097fad
===================================================================
097fad
--- strace-5.7.orig/tests-mx32/inject-nf.test	2018-12-25 00:46:43.000000000 +0100
097fad
+++ strace-5.7/tests-mx32/inject-nf.test	2020-09-09 14:58:03.750001408 +0200
097fad
@@ -9,14 +9,7 @@
097fad
 
097fad
 . "${srcdir=.}/scno_tampering.sh"
097fad
 
097fad
-case "$STRACE_ARCH" in
097fad
-alpha)
097fad
-	SYSCALL=getpgrp
097fad
-	;;
097fad
-*)
097fad
-	SYSCALL=getpid
097fad
-	;;
097fad
-esac
097fad
+SYSCALL='/^geteuid(32)?$'
097fad
 
097fad
 run_prog
097fad
 prog="$args"