Compare commits
No commits in common. "c8" and "c9-beta" have entirely different histories.
@ -1,102 +0,0 @@
|
|||||||
From c7e0ea6d712eb214dafe7e9eae57661d9a427ea7 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Dmitry V. Levin" <ldv@strace.io>
|
|
||||||
Date: Mon, 28 Oct 2024 08:00:00 +0000
|
|
||||||
Subject: [PATCH 183/185] syscall: do not use uninitialized parts of struct
|
|
||||||
ptrace_syscall_info
|
|
||||||
|
|
||||||
* src/syscall.c (ptrace_syscall_info_is_entry,
|
|
||||||
ptrace_syscall_info_is_exit): New functions.
|
|
||||||
(get_scno): Replace ptrace_syscall_info_is_valid() with
|
|
||||||
ptrace_syscall_info_is_entry().
|
|
||||||
(get_error): Replace ptrace_syscall_info_is_valid() with
|
|
||||||
ptrace_syscall_info_is_exit().
|
|
||||||
(get_syscall_regs): Fall back to get_regs() if strace_get_syscall_info()
|
|
||||||
succeeded but couldn't obtain the necessary data.
|
|
||||||
|
|
||||||
Resolves: https://github.com/strace/strace/issues/322
|
|
||||||
---
|
|
||||||
src/syscall.c | 40 +++++++++++++++++++++++++++++++++++-----
|
|
||||||
1 file changed, 35 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/syscall.c b/src/syscall.c
|
|
||||||
index a6692721a..1f4d86dc1 100644
|
|
||||||
--- a/src/syscall.c
|
|
||||||
+++ b/src/syscall.c
|
|
||||||
@@ -1082,6 +1082,21 @@ ptrace_syscall_info_is_valid(void)
|
|
||||||
ptrace_sci.op <= PTRACE_SYSCALL_INFO_SECCOMP;
|
|
||||||
}
|
|
||||||
|
|
||||||
+static bool
|
|
||||||
+ptrace_syscall_info_is_entry(void)
|
|
||||||
+{
|
|
||||||
+ return ptrace_get_syscall_info_supported &&
|
|
||||||
+ (ptrace_sci.op == PTRACE_SYSCALL_INFO_ENTRY ||
|
|
||||||
+ ptrace_sci.op == PTRACE_SYSCALL_INFO_SECCOMP);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+static bool
|
|
||||||
+ptrace_syscall_info_is_exit(void)
|
|
||||||
+{
|
|
||||||
+ return ptrace_get_syscall_info_supported &&
|
|
||||||
+ ptrace_sci.op == PTRACE_SYSCALL_INFO_EXIT;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
#define XLAT_MACROS_ONLY
|
|
||||||
#include "xlat/nt_descriptor_types.h"
|
|
||||||
#undef XLAT_MACROS_ONLY
|
|
||||||
@@ -1376,8 +1391,23 @@ get_syscall_regs(struct tcb *tcp)
|
|
||||||
if (get_regs_error != -1)
|
|
||||||
return get_regs_error;
|
|
||||||
|
|
||||||
- if (ptrace_get_syscall_info_supported)
|
|
||||||
- return strace_get_syscall_info(tcp) ? 0 : get_regs_error;
|
|
||||||
+ if (ptrace_get_syscall_info_supported) {
|
|
||||||
+ if (!strace_get_syscall_info(tcp))
|
|
||||||
+ return get_regs_error;
|
|
||||||
+
|
|
||||||
+ if ((entering(tcp) && ptrace_syscall_info_is_entry()) ||
|
|
||||||
+ (exiting(tcp) && ptrace_syscall_info_is_exit()))
|
|
||||||
+ return 0;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * PTRACE_GET_SYSCALL_INFO succeeded but didn't help,
|
|
||||||
+ * falling back to get_regs().
|
|
||||||
+ *
|
|
||||||
+ * This can happen when get_syscall_regs() is called
|
|
||||||
+ * from startup_tcb() via get_scno().
|
|
||||||
+ */
|
|
||||||
+ debug_func_msg("ptrace_sci.op = %d", ptrace_sci.op);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return get_regs(tcp);
|
|
||||||
}
|
|
||||||
@@ -1408,7 +1438,7 @@ get_scno(struct tcb *tcp)
|
|
||||||
if (get_syscall_regs(tcp) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
- if (ptrace_syscall_info_is_valid()) {
|
|
||||||
+ if (ptrace_syscall_info_is_entry()) {
|
|
||||||
/* Apply arch-specific workarounds. */
|
|
||||||
int rc = arch_check_scno(tcp);
|
|
||||||
if (rc != 1)
|
|
||||||
@@ -1456,7 +1486,7 @@ get_scno(struct tcb *tcp)
|
|
||||||
static int
|
|
||||||
get_syscall_args(struct tcb *tcp)
|
|
||||||
{
|
|
||||||
- if (ptrace_syscall_info_is_valid()) {
|
|
||||||
+ if (ptrace_syscall_info_is_entry()) {
|
|
||||||
const unsigned int n =
|
|
||||||
MIN(ARRAY_SIZE(tcp->u_arg),
|
|
||||||
ARRAY_SIZE(ptrace_sci.entry.args));
|
|
||||||
@@ -1507,7 +1537,7 @@ get_syscall_result(struct tcb *tcp)
|
|
||||||
static void
|
|
||||||
get_error(struct tcb *tcp, const bool check_errno)
|
|
||||||
{
|
|
||||||
- if (ptrace_syscall_info_is_valid()) {
|
|
||||||
+ if (ptrace_syscall_info_is_exit()) {
|
|
||||||
if (ptrace_sci.exit.is_error) {
|
|
||||||
tcp->u_rval = -1;
|
|
||||||
tcp->u_error = -ptrace_sci.exit.rval;
|
|
||||||
--
|
|
||||||
2.13.6
|
|
||||||
|
|
@ -1,37 +0,0 @@
|
|||||||
From 2048c136ba6edc4282dbc976c499e038d5b60c03 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Dmitry V. Levin" <ldv@strace.io>
|
|
||||||
Date: Mon, 28 Oct 2024 08:00:00 +0000
|
|
||||||
Subject: [PATCH 184/185] startup_tcb: add a comment
|
|
||||||
|
|
||||||
* src/strace.c (startup_tcb): Add a comment explaining why it is safe
|
|
||||||
to call get_scno().
|
|
||||||
---
|
|
||||||
src/strace.c | 12 ++++++++++--
|
|
||||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/strace.c b/src/strace.c
|
|
||||||
index 45ab48c43..1a9d53bc8 100644
|
|
||||||
--- a/src/strace.c
|
|
||||||
+++ b/src/strace.c
|
|
||||||
@@ -3549,8 +3549,16 @@ startup_tcb(struct tcb *tcp)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if ((tcp->flags & TCB_GRABBED) && (get_scno(tcp) == 1))
|
|
||||||
- tcp->s_prev_ent = tcp->s_ent;
|
|
||||||
+ if (tcp->flags & TCB_GRABBED) {
|
|
||||||
+ /*
|
|
||||||
+ * There is no guarantee the state of the tracee is such that
|
|
||||||
+ * would allow get_scno() to obtain meaningful information.
|
|
||||||
+ * However, if the tracee is not in a syscall, then the garbage
|
|
||||||
+ * obtained by get_scno() is not going to be used.
|
|
||||||
+ */
|
|
||||||
+ if (get_scno(tcp) == 1)
|
|
||||||
+ tcp->s_prev_ent = tcp->s_ent;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (cflag) {
|
|
||||||
tcp->atime = tcp->stime;
|
|
||||||
--
|
|
||||||
2.13.6
|
|
||||||
|
|
@ -1,129 +0,0 @@
|
|||||||
From 3bf08cbb388a89014252bdfe5143324bdaa4dc46 Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Dmitry V. Levin" <ldv@strace.io>
|
|
||||||
Date: Mon, 28 Oct 2024 08:00:00 +0000
|
|
||||||
Subject: [PATCH 185/185] tests: add another test of restart_syscall decoding
|
|
||||||
|
|
||||||
* tests/restart_syscall-p.test: New test.
|
|
||||||
* tests/restart_syscall-p.expected: New file.
|
|
||||||
* tests/Makefile.am (DECODER_TESTS): Add restart_syscall-p.test.
|
|
||||||
(check_DATA): Add restart_syscall-p.expected.
|
|
||||||
---
|
|
||||||
tests/Makefile.am | 2 ++
|
|
||||||
tests/restart_syscall-p.expected | 2 ++
|
|
||||||
tests/restart_syscall-p.test | 20 ++++++++++++++++++++
|
|
||||||
3 files changed, 24 insertions(+)
|
|
||||||
create mode 100644 tests/restart_syscall-p.expected
|
|
||||||
create mode 100755 tests/restart_syscall-p.test
|
|
||||||
|
|
||||||
Index: strace-5.18/tests/Makefile.am
|
|
||||||
===================================================================
|
|
||||||
--- strace-5.18.orig/tests/Makefile.am 2022-06-17 13:45:22.000000000 +0200
|
|
||||||
+++ strace-5.18/tests/Makefile.am 2024-11-01 14:29:01.292879707 +0100
|
|
||||||
@@ -499,6 +499,7 @@
|
|
||||||
prctl-seccomp-strict.test \
|
|
||||||
qual_fault-exit_group.test \
|
|
||||||
readv.test \
|
|
||||||
+ restart_syscall-p.test \
|
|
||||||
rt_sigaction.test \
|
|
||||||
scm_rights-fd.test \
|
|
||||||
seccomp-strict.test \
|
|
||||||
@@ -675,6 +676,7 @@
|
|
||||||
qualify_personality_empty.in \
|
|
||||||
quotactl.h \
|
|
||||||
regex.in \
|
|
||||||
+ restart_syscall-p.expected \
|
|
||||||
rt_sigaction.awk \
|
|
||||||
run.sh \
|
|
||||||
sched.in \
|
|
||||||
Index: strace-5.18/tests/restart_syscall-p.expected
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ strace-5.18/tests/restart_syscall-p.expected 2024-11-01 14:29:01.292879707 +0100
|
|
||||||
@@ -0,0 +1,2 @@
|
|
||||||
+restart_syscall(<... resuming interrupted nanosleep ...>) = 0
|
|
||||||
+exit_group(0) = ?
|
|
||||||
Index: strace-5.18/tests/restart_syscall-p.test
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
|
|
||||||
+++ strace-5.18/tests/restart_syscall-p.test 2024-11-01 14:29:01.292879707 +0100
|
|
||||||
@@ -0,0 +1,20 @@
|
|
||||||
+#!/bin/sh
|
|
||||||
+#
|
|
||||||
+# Check restart_syscall decoding.
|
|
||||||
+#
|
|
||||||
+# Copyright (c) 2015-2024 The strace developers.
|
|
||||||
+# All rights reserved.
|
|
||||||
+#
|
|
||||||
+# SPDX-License-Identifier: GPL-2.0-or-later
|
|
||||||
+
|
|
||||||
+. "${srcdir=.}/init.sh"
|
|
||||||
+
|
|
||||||
+run_prog ../sleep 0
|
|
||||||
+
|
|
||||||
+../set_ptracer_any ../sleep 2 > /dev/null &
|
|
||||||
+tracee_pid=$!
|
|
||||||
+
|
|
||||||
+../sleep 1
|
|
||||||
+
|
|
||||||
+run_strace -qq -a14 -p $tracee_pid
|
|
||||||
+match_diff
|
|
||||||
Index: strace-5.18/tests-m32/Makefile.in
|
|
||||||
===================================================================
|
|
||||||
--- strace-5.18.orig/tests-m32/Makefile.in 2022-06-18 20:33:58.000000000 +0200
|
|
||||||
+++ strace-5.18/tests-m32/Makefile.in 2024-11-01 14:29:01.295879673 +0100
|
|
||||||
@@ -9232,6 +9232,7 @@
|
|
||||||
prctl-seccomp-strict.test \
|
|
||||||
qual_fault-exit_group.test \
|
|
||||||
readv.test \
|
|
||||||
+ restart_syscall-p.test \
|
|
||||||
rt_sigaction.test \
|
|
||||||
scm_rights-fd.test \
|
|
||||||
seccomp-strict.test \
|
|
||||||
@@ -9403,6 +9404,7 @@
|
|
||||||
qualify_personality_empty.in \
|
|
||||||
quotactl.h \
|
|
||||||
regex.in \
|
|
||||||
+ restart_syscall-p.expected \
|
|
||||||
rt_sigaction.awk \
|
|
||||||
run.sh \
|
|
||||||
sched.in \
|
|
||||||
Index: strace-5.18/tests-mx32/Makefile.in
|
|
||||||
===================================================================
|
|
||||||
--- strace-5.18.orig/tests-mx32/Makefile.in 2022-06-18 20:33:58.000000000 +0200
|
|
||||||
+++ strace-5.18/tests-mx32/Makefile.in 2024-11-01 14:29:01.297879650 +0100
|
|
||||||
@@ -9232,6 +9232,7 @@
|
|
||||||
prctl-seccomp-strict.test \
|
|
||||||
qual_fault-exit_group.test \
|
|
||||||
readv.test \
|
|
||||||
+ restart_syscall-p.test \
|
|
||||||
rt_sigaction.test \
|
|
||||||
scm_rights-fd.test \
|
|
||||||
seccomp-strict.test \
|
|
||||||
@@ -9403,6 +9404,7 @@
|
|
||||||
qualify_personality_empty.in \
|
|
||||||
quotactl.h \
|
|
||||||
regex.in \
|
|
||||||
+ restart_syscall-p.expected \
|
|
||||||
rt_sigaction.awk \
|
|
||||||
run.sh \
|
|
||||||
sched.in \
|
|
||||||
Index: strace-5.18/tests/Makefile.in
|
|
||||||
===================================================================
|
|
||||||
--- strace-5.18.orig/tests/Makefile.in 2022-06-18 20:33:59.000000000 +0200
|
|
||||||
+++ strace-5.18/tests/Makefile.in 2024-11-01 14:29:01.299879628 +0100
|
|
||||||
@@ -9231,6 +9231,7 @@
|
|
||||||
prctl-seccomp-strict.test \
|
|
||||||
qual_fault-exit_group.test \
|
|
||||||
readv.test \
|
|
||||||
+ restart_syscall-p.test \
|
|
||||||
rt_sigaction.test \
|
|
||||||
scm_rights-fd.test \
|
|
||||||
seccomp-strict.test \
|
|
||||||
@@ -9402,6 +9403,7 @@
|
|
||||||
qualify_personality_empty.in \
|
|
||||||
quotactl.h \
|
|
||||||
regex.in \
|
|
||||||
+ restart_syscall-p.expected \
|
|
||||||
rt_sigaction.awk \
|
|
||||||
run.sh \
|
|
||||||
sched.in \
|
|
@ -1,108 +0,0 @@
|
|||||||
From e9d784ecd3ef0c5af9f8c74a830e797d773d71cb Mon Sep 17 00:00:00 2001
|
|
||||||
From: "Dmitry V. Levin" <ldv@strace.io>
|
|
||||||
Date: Sun, 21 Apr 2024 08:00:00 +0000
|
|
||||||
Subject: [PATCH] tests: workaround net-yy-inet* for new kernels
|
|
||||||
|
|
||||||
Starting with Linux kernel commit v6.8-rc1~131^2~223, NETLINK_INET_DIAG
|
|
||||||
works also for bound-only sockets. As there is no easy way to tell
|
|
||||||
whether the running kernel contains that commit, the test cannot easily
|
|
||||||
predict the kernel behavior in case of sockets in bound-only state.
|
|
||||||
Workaround this by skipping the corresponding part of the test.
|
|
||||||
|
|
||||||
* tests/net-yy-inet.test: Filter out listen() calls.
|
|
||||||
* tests/net-yy-inet.c (main): Do not print expected output for listen()
|
|
||||||
syscall.
|
|
||||||
|
|
||||||
Resolves: https://github.com/strace/strace/issues/299
|
|
||||||
---
|
|
||||||
tests/net-yy-inet.c | 2 --
|
|
||||||
tests/net-yy-inet.test | 6 +++++-
|
|
||||||
2 files changed, 5 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/net-yy-inet.c b/tests/net-yy-inet.c
|
|
||||||
index 1a83548bf..7f8e05783 100644
|
|
||||||
--- a/tests/net-yy-inet.c
|
|
||||||
+++ b/tests/net-yy-inet.c
|
|
||||||
@@ -63,8 +63,6 @@ main(void)
|
|
||||||
|
|
||||||
if (listen(listen_fd, 1))
|
|
||||||
perror_msg_and_skip("listen");
|
|
||||||
- printf("listen(%d<" TCP_STR ":[%lu]>, 1) = 0\n",
|
|
||||||
- listen_fd, listen_inode);
|
|
||||||
|
|
||||||
memset(listen_sa, 0, sizeof(addr));
|
|
||||||
*len = sizeof(addr);
|
|
||||||
diff --git a/tests/net-yy-inet.test b/tests/net-yy-inet.test
|
|
||||||
index 9a3f851bf..d45414bcb 100755
|
|
||||||
--- a/tests/net-yy-inet.test
|
|
||||||
+++ b/tests/net-yy-inet.test
|
|
||||||
@@ -17,5 +17,9 @@ run_prog > /dev/null
|
|
||||||
run_strace -a22 -yy -eclose,network $args > "$EXP"
|
|
||||||
|
|
||||||
# Filter out close() calls made by ld.so and libc.
|
|
||||||
-sed -n '/socket/,$p' < "$LOG" > "$OUT"
|
|
||||||
+#
|
|
||||||
+# Filter out listen() call as we cannot easily predict the kernel
|
|
||||||
+# behaviour because there is no easy way to tell whether the Linux kernel
|
|
||||||
+# contains commit v6.8-rc1~131^2~223.
|
|
||||||
+sed -n '/^listen/d;/^socket/,$p' < "$LOG" > "$OUT"
|
|
||||||
match_diff "$OUT" "$EXP"
|
|
||||||
diff --git a/tests-m32/net-yy-inet.c b/tests-m32/net-yy-inet.c
|
|
||||||
index 1a83548bf..7f8e05783 100644
|
|
||||||
--- a/tests-m32/net-yy-inet.c
|
|
||||||
+++ b/tests-m32/net-yy-inet.c
|
|
||||||
@@ -63,8 +63,6 @@ main(void)
|
|
||||||
|
|
||||||
if (listen(listen_fd, 1))
|
|
||||||
perror_msg_and_skip("listen");
|
|
||||||
- printf("listen(%d<" TCP_STR ":[%lu]>, 1) = 0\n",
|
|
||||||
- listen_fd, listen_inode);
|
|
||||||
|
|
||||||
memset(listen_sa, 0, sizeof(addr));
|
|
||||||
*len = sizeof(addr);
|
|
||||||
diff --git a/tests-m32/net-yy-inet.test b/tests-m32/net-yy-inet.test
|
|
||||||
index 9a3f851bf..d45414bcb 100755
|
|
||||||
--- a/tests-m32/net-yy-inet.test
|
|
||||||
+++ b/tests-m32/net-yy-inet.test
|
|
||||||
@@ -17,5 +17,9 @@ run_prog > /dev/null
|
|
||||||
run_strace -a22 -yy -eclose,network $args > "$EXP"
|
|
||||||
|
|
||||||
# Filter out close() calls made by ld.so and libc.
|
|
||||||
-sed -n '/socket/,$p' < "$LOG" > "$OUT"
|
|
||||||
+#
|
|
||||||
+# Filter out listen() call as we cannot easily predict the kernel
|
|
||||||
+# behaviour because there is no easy way to tell whether the Linux kernel
|
|
||||||
+# contains commit v6.8-rc1~131^2~223.
|
|
||||||
+sed -n '/^listen/d;/^socket/,$p' < "$LOG" > "$OUT"
|
|
||||||
match_diff "$OUT" "$EXP"
|
|
||||||
diff --git a/tests-mx32/net-yy-inet.c b/tests-mx32/net-yy-inet.c
|
|
||||||
index 1a83548bf..7f8e05783 100644
|
|
||||||
--- a/tests-mx32/net-yy-inet.c
|
|
||||||
+++ b/tests-mx32/net-yy-inet.c
|
|
||||||
@@ -63,8 +63,6 @@ main(void)
|
|
||||||
|
|
||||||
if (listen(listen_fd, 1))
|
|
||||||
perror_msg_and_skip("listen");
|
|
||||||
- printf("listen(%d<" TCP_STR ":[%lu]>, 1) = 0\n",
|
|
||||||
- listen_fd, listen_inode);
|
|
||||||
|
|
||||||
memset(listen_sa, 0, sizeof(addr));
|
|
||||||
*len = sizeof(addr);
|
|
||||||
diff --git a/tests-mx32/net-yy-inet.test b/tests-mx32/net-yy-inet.test
|
|
||||||
index 9a3f851bf..d45414bcb 100755
|
|
||||||
--- a/tests-mx32/net-yy-inet.test
|
|
||||||
+++ b/tests-mx32/net-yy-inet.test
|
|
||||||
@@ -17,5 +17,9 @@ run_prog > /dev/null
|
|
||||||
run_strace -a22 -yy -eclose,network $args > "$EXP"
|
|
||||||
|
|
||||||
# Filter out close() calls made by ld.so and libc.
|
|
||||||
-sed -n '/socket/,$p' < "$LOG" > "$OUT"
|
|
||||||
+#
|
|
||||||
+# Filter out listen() call as we cannot easily predict the kernel
|
|
||||||
+# behaviour because there is no easy way to tell whether the Linux kernel
|
|
||||||
+# contains commit v6.8-rc1~131^2~223.
|
|
||||||
+sed -n '/^listen/d;/^socket/,$p' < "$LOG" > "$OUT"
|
|
||||||
match_diff "$OUT" "$EXP"
|
|
||||||
--
|
|
||||||
2.13.6
|
|
||||||
|
|
@ -1,530 +0,0 @@
|
|||||||
From 660186018897b386fb05d7951aec57a81211a1a4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
|
||||||
Date: Wed, 21 Aug 2024 15:32:42 +0200
|
|
||||||
Subject: [PATCH] tests: avoid linkat--secontext_mismatch failures on
|
|
||||||
setfilecon errors
|
|
||||||
|
|
||||||
linkat--secontext_mismatch can fail if setfilecon cannot update SELinux
|
|
||||||
context (for example, that happens when the test is run under
|
|
||||||
an unprivileged user and tries to change the type to unconfined_t).
|
|
||||||
Avoid it by actually checking the return code and skipping the test
|
|
||||||
if there are errors reported by reset_secontext_file
|
|
||||||
or update_secontext_field calls.
|
|
||||||
|
|
||||||
* tests/secontext.h: Include <errno.h>.
|
|
||||||
(reset_secontext_file, update_secontext_field): Change the return type
|
|
||||||
from void to int.
|
|
||||||
[!(TEST_SECONTEXT && HAVE_SELINUX_RUNTIME)] (reset_secontext_file,
|
|
||||||
update_secontext_field): Return -ENOSYS.
|
|
||||||
* tests/secontext.c: (reset_secontext_file): Change the return type
|
|
||||||
to int; save the setfilecon return value to ret and reset it to -errno
|
|
||||||
if the latter is non-zero; return ret.
|
|
||||||
(update_secontext_field): Change the return type to int; return -1
|
|
||||||
if ctx is NULL; save the setfilecon return value to ret and reset
|
|
||||||
it to -errno if the latter is non-zero; return ret.
|
|
||||||
* tests/linkat.c: Include "xlat.h".
|
|
||||||
(secontext_types_data, secontext_types): New constants.
|
|
||||||
(mangle_secontext_field): Store the new field value in the new variable;
|
|
||||||
store the update_secontext_field return value to the ret variable, error
|
|
||||||
and skip if it is non-zero.
|
|
||||||
(main): Error and skip if reset_secontext_file returns non-zero.
|
|
||||||
|
|
||||||
Reported-by: Edjunior Machado <emachado@redhat.com>
|
|
||||||
---
|
|
||||||
tests/linkat.c | 34 ++++++++++++++++++++++++++++++----
|
|
||||||
tests/secontext.c | 19 ++++++++++++++-----
|
|
||||||
tests/secontext.h | 14 +++++++++-----
|
|
||||||
3 files changed, 53 insertions(+), 14 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/linkat.c b/tests/linkat.c
|
|
||||||
index 1d0ee3c9f..832392ca0 100644
|
|
||||||
--- a/tests/linkat.c
|
|
||||||
+++ b/tests/linkat.c
|
|
||||||
@@ -19,8 +19,20 @@
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "secontext.h"
|
|
||||||
+#include "xlat.h"
|
|
||||||
#include "xmalloc.h"
|
|
||||||
|
|
||||||
+struct xlat_data secontext_types_data[] = {
|
|
||||||
+ [SECONTEXT_USER] = XLAT_PAIR(SECONTEXT_USER, "user"),
|
|
||||||
+ [SECONTEXT_ROLE] = XLAT_PAIR(SECONTEXT_ROLE, "role"),
|
|
||||||
+ [SECONTEXT_TYPE] = XLAT_PAIR(SECONTEXT_TYPE, "type"),
|
|
||||||
+};
|
|
||||||
+struct xlat secontext_types = {
|
|
||||||
+ .data = secontext_types_data,
|
|
||||||
+ .size = ARRAY_SIZE(secontext_types_data),
|
|
||||||
+ .type = XT_INDEXED,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
mangle_secontext_field(const char *path, enum secontext_field field,
|
|
||||||
const char *new_val, const char *fallback_val)
|
|
||||||
@@ -29,10 +41,18 @@ mangle_secontext_field(const char *path, enum secontext_field field,
|
|
||||||
if (!orig)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- update_secontext_field(path, field,
|
|
||||||
- strcmp(new_val, orig) ? new_val : fallback_val);
|
|
||||||
+ const char *new = strcmp(new_val, orig) ? new_val : fallback_val;
|
|
||||||
|
|
||||||
free(orig);
|
|
||||||
+
|
|
||||||
+ int ret = update_secontext_field(path, field, new);
|
|
||||||
+ if (ret) {
|
|
||||||
+ error_msg_and_skip("Failed to mangle secontext %s for "
|
|
||||||
+ "'%s' to %s: %d",
|
|
||||||
+ sprintxval_abbrev(&secontext_types, field,
|
|
||||||
+ "SECONTEXT_???"),
|
|
||||||
+ path, new, ret);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
@@ -103,8 +123,14 @@ main(void)
|
|
||||||
if (close(fd_sample_2))
|
|
||||||
perror_msg_and_fail("close");
|
|
||||||
|
|
||||||
- if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
|
||||||
- reset_secontext_file(sample_1);
|
|
||||||
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) {
|
|
||||||
+ int ret;
|
|
||||||
+ if ((ret = reset_secontext_file(sample_1))) {
|
|
||||||
+ errno = -ret;
|
|
||||||
+ perror_msg_and_skip("Reset secontext for '%s'",
|
|
||||||
+ sample_1);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
free(sample_1_secontext);
|
|
||||||
|
|
||||||
diff --git a/tests/secontext.c b/tests/secontext.c
|
|
||||||
index 84c682869..a0463c467 100644
|
|
||||||
--- a/tests/secontext.c
|
|
||||||
+++ b/tests/secontext.c
|
|
||||||
@@ -284,14 +284,19 @@ secontext_short_pid(pid_t pid)
|
|
||||||
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
|
||||||
}
|
|
||||||
|
|
||||||
-void reset_secontext_file(const char *file)
|
|
||||||
+int
|
|
||||||
+reset_secontext_file(const char *file)
|
|
||||||
{
|
|
||||||
char *proper_ctx = raw_expected_secontext_full_file(file);
|
|
||||||
- (void) setfilecon(file, proper_ctx);
|
|
||||||
+ int ret = setfilecon(file, proper_ctx);
|
|
||||||
+ if (ret && errno)
|
|
||||||
+ ret = -errno;
|
|
||||||
free(proper_ctx);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
-void
|
|
||||||
+int
|
|
||||||
update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
const char *newvalue)
|
|
||||||
{
|
|
||||||
@@ -300,7 +305,7 @@ update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
|
|
||||||
char *ctx = raw_secontext_full_file(file);
|
|
||||||
if (ctx == NULL)
|
|
||||||
- return;
|
|
||||||
+ return -1;
|
|
||||||
|
|
||||||
char *saveptr = NULL;
|
|
||||||
char *token;
|
|
||||||
@@ -319,11 +324,15 @@ update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1],
|
|
||||||
split[2], split[3]);
|
|
||||||
|
|
||||||
- (void) setfilecon(file, newcontext);
|
|
||||||
+ int ret = setfilecon(file, newcontext);
|
|
||||||
+ if (ret && errno)
|
|
||||||
+ ret = -errno;
|
|
||||||
|
|
||||||
free(newcontext);
|
|
||||||
free(ctx);
|
|
||||||
errno = saved_errno;
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* HAVE_SELINUX_RUNTIME */
|
|
||||||
diff --git a/tests/secontext.h b/tests/secontext.h
|
|
||||||
index b5bba2272..dab33e6a5 100644
|
|
||||||
--- a/tests/secontext.h
|
|
||||||
+++ b/tests/secontext.h
|
|
||||||
@@ -7,6 +7,8 @@
|
|
||||||
|
|
||||||
#include "tests.h"
|
|
||||||
#include "xmalloc.h"
|
|
||||||
+
|
|
||||||
+#include <errno.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
char *secontext_full_fd(int) ATTRIBUTE_MALLOC;
|
|
||||||
@@ -35,10 +37,10 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
|
||||||
char *get_secontext_field_fd(int fd, enum secontext_field field);
|
|
||||||
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
|
||||||
|
|
||||||
-void reset_secontext_file(const char *file);
|
|
||||||
+int reset_secontext_file(const char *file);
|
|
||||||
|
|
||||||
-void update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
- const char *newvalue);
|
|
||||||
+int update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
+ const char *newvalue);
|
|
||||||
|
|
||||||
# ifdef PRINT_SECONTEXT_FULL
|
|
||||||
|
|
||||||
@@ -81,15 +83,17 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
+static inline int
|
|
||||||
reset_secontext_file(const char *file)
|
|
||||||
{
|
|
||||||
+ return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
+static inline int
|
|
||||||
update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
const char *newvalue)
|
|
||||||
{
|
|
||||||
+ return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
# define SECONTEXT_FD(fd) xstrdup("")
|
|
||||||
diff --git a/tests-m32/linkat.c b/tests-m32/linkat.c
|
|
||||||
index 1d0ee3c9f..832392ca0 100644
|
|
||||||
--- a/tests-m32/linkat.c
|
|
||||||
+++ b/tests-m32/linkat.c
|
|
||||||
@@ -19,8 +19,20 @@
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "secontext.h"
|
|
||||||
+#include "xlat.h"
|
|
||||||
#include "xmalloc.h"
|
|
||||||
|
|
||||||
+struct xlat_data secontext_types_data[] = {
|
|
||||||
+ [SECONTEXT_USER] = XLAT_PAIR(SECONTEXT_USER, "user"),
|
|
||||||
+ [SECONTEXT_ROLE] = XLAT_PAIR(SECONTEXT_ROLE, "role"),
|
|
||||||
+ [SECONTEXT_TYPE] = XLAT_PAIR(SECONTEXT_TYPE, "type"),
|
|
||||||
+};
|
|
||||||
+struct xlat secontext_types = {
|
|
||||||
+ .data = secontext_types_data,
|
|
||||||
+ .size = ARRAY_SIZE(secontext_types_data),
|
|
||||||
+ .type = XT_INDEXED,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
mangle_secontext_field(const char *path, enum secontext_field field,
|
|
||||||
const char *new_val, const char *fallback_val)
|
|
||||||
@@ -29,10 +41,18 @@ mangle_secontext_field(const char *path, enum secontext_field field,
|
|
||||||
if (!orig)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- update_secontext_field(path, field,
|
|
||||||
- strcmp(new_val, orig) ? new_val : fallback_val);
|
|
||||||
+ const char *new = strcmp(new_val, orig) ? new_val : fallback_val;
|
|
||||||
|
|
||||||
free(orig);
|
|
||||||
+
|
|
||||||
+ int ret = update_secontext_field(path, field, new);
|
|
||||||
+ if (ret) {
|
|
||||||
+ error_msg_and_skip("Failed to mangle secontext %s for "
|
|
||||||
+ "'%s' to %s: %d",
|
|
||||||
+ sprintxval_abbrev(&secontext_types, field,
|
|
||||||
+ "SECONTEXT_???"),
|
|
||||||
+ path, new, ret);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
@@ -103,8 +123,14 @@ main(void)
|
|
||||||
if (close(fd_sample_2))
|
|
||||||
perror_msg_and_fail("close");
|
|
||||||
|
|
||||||
- if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
|
||||||
- reset_secontext_file(sample_1);
|
|
||||||
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) {
|
|
||||||
+ int ret;
|
|
||||||
+ if ((ret = reset_secontext_file(sample_1))) {
|
|
||||||
+ errno = -ret;
|
|
||||||
+ perror_msg_and_skip("Reset secontext for '%s'",
|
|
||||||
+ sample_1);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
free(sample_1_secontext);
|
|
||||||
|
|
||||||
diff --git a/tests-m32/secontext.c b/tests-m32/secontext.c
|
|
||||||
index 84c682869..a0463c467 100644
|
|
||||||
--- a/tests-m32/secontext.c
|
|
||||||
+++ b/tests-m32/secontext.c
|
|
||||||
@@ -284,14 +284,19 @@ secontext_short_pid(pid_t pid)
|
|
||||||
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
|
||||||
}
|
|
||||||
|
|
||||||
-void reset_secontext_file(const char *file)
|
|
||||||
+int
|
|
||||||
+reset_secontext_file(const char *file)
|
|
||||||
{
|
|
||||||
char *proper_ctx = raw_expected_secontext_full_file(file);
|
|
||||||
- (void) setfilecon(file, proper_ctx);
|
|
||||||
+ int ret = setfilecon(file, proper_ctx);
|
|
||||||
+ if (ret && errno)
|
|
||||||
+ ret = -errno;
|
|
||||||
free(proper_ctx);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
-void
|
|
||||||
+int
|
|
||||||
update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
const char *newvalue)
|
|
||||||
{
|
|
||||||
@@ -300,7 +305,7 @@ update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
|
|
||||||
char *ctx = raw_secontext_full_file(file);
|
|
||||||
if (ctx == NULL)
|
|
||||||
- return;
|
|
||||||
+ return -1;
|
|
||||||
|
|
||||||
char *saveptr = NULL;
|
|
||||||
char *token;
|
|
||||||
@@ -319,11 +324,15 @@ update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1],
|
|
||||||
split[2], split[3]);
|
|
||||||
|
|
||||||
- (void) setfilecon(file, newcontext);
|
|
||||||
+ int ret = setfilecon(file, newcontext);
|
|
||||||
+ if (ret && errno)
|
|
||||||
+ ret = -errno;
|
|
||||||
|
|
||||||
free(newcontext);
|
|
||||||
free(ctx);
|
|
||||||
errno = saved_errno;
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* HAVE_SELINUX_RUNTIME */
|
|
||||||
diff --git a/tests-m32/secontext.h b/tests-m32/secontext.h
|
|
||||||
index b5bba2272..dab33e6a5 100644
|
|
||||||
--- a/tests-m32/secontext.h
|
|
||||||
+++ b/tests-m32/secontext.h
|
|
||||||
@@ -7,6 +7,8 @@
|
|
||||||
|
|
||||||
#include "tests.h"
|
|
||||||
#include "xmalloc.h"
|
|
||||||
+
|
|
||||||
+#include <errno.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
char *secontext_full_fd(int) ATTRIBUTE_MALLOC;
|
|
||||||
@@ -35,10 +37,10 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
|
||||||
char *get_secontext_field_fd(int fd, enum secontext_field field);
|
|
||||||
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
|
||||||
|
|
||||||
-void reset_secontext_file(const char *file);
|
|
||||||
+int reset_secontext_file(const char *file);
|
|
||||||
|
|
||||||
-void update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
- const char *newvalue);
|
|
||||||
+int update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
+ const char *newvalue);
|
|
||||||
|
|
||||||
# ifdef PRINT_SECONTEXT_FULL
|
|
||||||
|
|
||||||
@@ -81,15 +83,17 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
+static inline int
|
|
||||||
reset_secontext_file(const char *file)
|
|
||||||
{
|
|
||||||
+ return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
+static inline int
|
|
||||||
update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
const char *newvalue)
|
|
||||||
{
|
|
||||||
+ return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
# define SECONTEXT_FD(fd) xstrdup("")
|
|
||||||
diff --git a/tests-mx32/linkat.c b/tests-mx32/linkat.c
|
|
||||||
index 1d0ee3c9f..832392ca0 100644
|
|
||||||
--- a/tests-mx32/linkat.c
|
|
||||||
+++ b/tests-mx32/linkat.c
|
|
||||||
@@ -19,8 +19,20 @@
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "secontext.h"
|
|
||||||
+#include "xlat.h"
|
|
||||||
#include "xmalloc.h"
|
|
||||||
|
|
||||||
+struct xlat_data secontext_types_data[] = {
|
|
||||||
+ [SECONTEXT_USER] = XLAT_PAIR(SECONTEXT_USER, "user"),
|
|
||||||
+ [SECONTEXT_ROLE] = XLAT_PAIR(SECONTEXT_ROLE, "role"),
|
|
||||||
+ [SECONTEXT_TYPE] = XLAT_PAIR(SECONTEXT_TYPE, "type"),
|
|
||||||
+};
|
|
||||||
+struct xlat secontext_types = {
|
|
||||||
+ .data = secontext_types_data,
|
|
||||||
+ .size = ARRAY_SIZE(secontext_types_data),
|
|
||||||
+ .type = XT_INDEXED,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static void
|
|
||||||
mangle_secontext_field(const char *path, enum secontext_field field,
|
|
||||||
const char *new_val, const char *fallback_val)
|
|
||||||
@@ -29,10 +41,18 @@ mangle_secontext_field(const char *path, enum secontext_field field,
|
|
||||||
if (!orig)
|
|
||||||
return;
|
|
||||||
|
|
||||||
- update_secontext_field(path, field,
|
|
||||||
- strcmp(new_val, orig) ? new_val : fallback_val);
|
|
||||||
+ const char *new = strcmp(new_val, orig) ? new_val : fallback_val;
|
|
||||||
|
|
||||||
free(orig);
|
|
||||||
+
|
|
||||||
+ int ret = update_secontext_field(path, field, new);
|
|
||||||
+ if (ret) {
|
|
||||||
+ error_msg_and_skip("Failed to mangle secontext %s for "
|
|
||||||
+ "'%s' to %s: %d",
|
|
||||||
+ sprintxval_abbrev(&secontext_types, field,
|
|
||||||
+ "SECONTEXT_???"),
|
|
||||||
+ path, new, ret);
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
@@ -103,8 +123,14 @@ main(void)
|
|
||||||
if (close(fd_sample_2))
|
|
||||||
perror_msg_and_fail("close");
|
|
||||||
|
|
||||||
- if (*sample_1_secontext && strstr(sample_1_secontext, "!!"))
|
|
||||||
- reset_secontext_file(sample_1);
|
|
||||||
+ if (*sample_1_secontext && strstr(sample_1_secontext, "!!")) {
|
|
||||||
+ int ret;
|
|
||||||
+ if ((ret = reset_secontext_file(sample_1))) {
|
|
||||||
+ errno = -ret;
|
|
||||||
+ perror_msg_and_skip("Reset secontext for '%s'",
|
|
||||||
+ sample_1);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
|
|
||||||
free(sample_1_secontext);
|
|
||||||
|
|
||||||
diff --git a/tests-mx32/secontext.c b/tests-mx32/secontext.c
|
|
||||||
index 84c682869..a0463c467 100644
|
|
||||||
--- a/tests-mx32/secontext.c
|
|
||||||
+++ b/tests-mx32/secontext.c
|
|
||||||
@@ -284,14 +284,19 @@ secontext_short_pid(pid_t pid)
|
|
||||||
return FORMAT_SPACE_AFTER(raw_secontext_short_pid(pid));
|
|
||||||
}
|
|
||||||
|
|
||||||
-void reset_secontext_file(const char *file)
|
|
||||||
+int
|
|
||||||
+reset_secontext_file(const char *file)
|
|
||||||
{
|
|
||||||
char *proper_ctx = raw_expected_secontext_full_file(file);
|
|
||||||
- (void) setfilecon(file, proper_ctx);
|
|
||||||
+ int ret = setfilecon(file, proper_ctx);
|
|
||||||
+ if (ret && errno)
|
|
||||||
+ ret = -errno;
|
|
||||||
free(proper_ctx);
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
-void
|
|
||||||
+int
|
|
||||||
update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
const char *newvalue)
|
|
||||||
{
|
|
||||||
@@ -300,7 +305,7 @@ update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
|
|
||||||
char *ctx = raw_secontext_full_file(file);
|
|
||||||
if (ctx == NULL)
|
|
||||||
- return;
|
|
||||||
+ return -1;
|
|
||||||
|
|
||||||
char *saveptr = NULL;
|
|
||||||
char *token;
|
|
||||||
@@ -319,11 +324,15 @@ update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
char *newcontext = xasprintf("%s:%s:%s:%s", split[0], split[1],
|
|
||||||
split[2], split[3]);
|
|
||||||
|
|
||||||
- (void) setfilecon(file, newcontext);
|
|
||||||
+ int ret = setfilecon(file, newcontext);
|
|
||||||
+ if (ret && errno)
|
|
||||||
+ ret = -errno;
|
|
||||||
|
|
||||||
free(newcontext);
|
|
||||||
free(ctx);
|
|
||||||
errno = saved_errno;
|
|
||||||
+
|
|
||||||
+ return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* HAVE_SELINUX_RUNTIME */
|
|
||||||
diff --git a/tests-mx32/secontext.h b/tests-mx32/secontext.h
|
|
||||||
index b5bba2272..dab33e6a5 100644
|
|
||||||
--- a/tests-mx32/secontext.h
|
|
||||||
+++ b/tests-mx32/secontext.h
|
|
||||||
@@ -7,6 +7,8 @@
|
|
||||||
|
|
||||||
#include "tests.h"
|
|
||||||
#include "xmalloc.h"
|
|
||||||
+
|
|
||||||
+#include <errno.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
char *secontext_full_fd(int) ATTRIBUTE_MALLOC;
|
|
||||||
@@ -35,10 +37,10 @@ char *get_secontext_field(const char *full_context, enum secontext_field field);
|
|
||||||
char *get_secontext_field_fd(int fd, enum secontext_field field);
|
|
||||||
char *get_secontext_field_file(const char *file, enum secontext_field field);
|
|
||||||
|
|
||||||
-void reset_secontext_file(const char *file);
|
|
||||||
+int reset_secontext_file(const char *file);
|
|
||||||
|
|
||||||
-void update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
- const char *newvalue);
|
|
||||||
+int update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
+ const char *newvalue);
|
|
||||||
|
|
||||||
# ifdef PRINT_SECONTEXT_FULL
|
|
||||||
|
|
||||||
@@ -81,15 +83,17 @@ get_secontext_field_file(const char *file, enum secontext_field field)
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
+static inline int
|
|
||||||
reset_secontext_file(const char *file)
|
|
||||||
{
|
|
||||||
+ return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
-static inline void
|
|
||||||
+static inline int
|
|
||||||
update_secontext_field(const char *file, enum secontext_field field,
|
|
||||||
const char *newvalue)
|
|
||||||
{
|
|
||||||
+ return -ENOSYS;
|
|
||||||
}
|
|
||||||
|
|
||||||
# define SECONTEXT_FD(fd) xstrdup("")
|
|
||||||
--
|
|
||||||
2.13.6
|
|
||||||
|
|
@ -1,76 +0,0 @@
|
|||||||
From d08dfdebb381427cbd8565994868926ba9bc4b40 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
|
||||||
Date: Wed, 30 Oct 2024 15:16:47 +0100
|
|
||||||
Subject: [PATCH 188/190] linux/s390/get_scno.c: use NT_S390_SYSTEM_CALL if
|
|
||||||
gprs[2] is clobbered
|
|
||||||
|
|
||||||
The way the syscall number is retrieved currently relies on the kernel
|
|
||||||
propagating it properly into gprs[2], which is not however always the case;
|
|
||||||
apart of the situation where scno > NR_syscalls, there is also an issue
|
|
||||||
of inspecting it during syscall restart (as it happens on attach, for
|
|
||||||
example), when it is already clobbered by a ERESTART* errno. Luckily
|
|
||||||
for strace, this issue has been already foreseen by the kernel
|
|
||||||
developers, and support for retrieving syscall number on s390
|
|
||||||
via a separate ptrace regset has been added by the Linux commit
|
|
||||||
v3.2-rc1~109^2~34; 13 years later, it is time for it to fulfill
|
|
||||||
its purpose and finally get utilised.
|
|
||||||
|
|
||||||
* src/linux/s390/get_scno.c (arch_get_scno): Try to retrieve the syscall
|
|
||||||
number by querying NT_S390_SYSTEM_CALL regset if gprs[2] contains an errno.
|
|
||||||
|
|
||||||
Complements: v6.11-21-gc7e0ea6d712e "syscall: do not use uninitialized parts of struct ptrace_syscall_info"
|
|
||||||
---
|
|
||||||
src/linux/s390/get_scno.c | 34 ++++++++++++++++++++++++++++++++--
|
|
||||||
1 file changed, 32 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/linux/s390/get_scno.c b/src/linux/s390/get_scno.c
|
|
||||||
index f0863e26d701..fdc94d025280 100644
|
|
||||||
--- a/src/linux/s390/get_scno.c
|
|
||||||
+++ b/src/linux/s390/get_scno.c
|
|
||||||
@@ -9,11 +9,41 @@
|
|
||||||
# define ARCH_REGSET s390_regset
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef NT_ARM_SYSTEM_CALL
|
|
||||||
+# define NT_S390_SYSTEM_CALL 0x307
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/* Return codes: 1 - ok, 0 - ignore, other - error. */
|
|
||||||
static int
|
|
||||||
arch_get_scno(struct tcb *tcp)
|
|
||||||
{
|
|
||||||
- tcp->scno = ARCH_REGSET.gprs[2] ?
|
|
||||||
- ARCH_REGSET.gprs[2] : ARCH_REGSET.gprs[1];
|
|
||||||
+ typeof(ARCH_REGSET.gprs[2]) gpr2 = ARCH_REGSET.gprs[2];
|
|
||||||
+
|
|
||||||
+ if (gpr2 > (typeof(gpr2)) (-4095ULL)) {
|
|
||||||
+ /*
|
|
||||||
+ * We are in restart_syscall and gprs[2] is clobbered
|
|
||||||
+ * by the errno, using pulling the syscall number
|
|
||||||
+ * via NT_S390_SYSTEM_CALL regset.
|
|
||||||
+ */
|
|
||||||
+ unsigned int scno;
|
|
||||||
+ const struct iovec io = {
|
|
||||||
+ .iov_base = &scno,
|
|
||||||
+ .iov_len = sizeof(scno)
|
|
||||||
+ };
|
|
||||||
+ int rc = ptrace(PTRACE_GETREGSET, tcp->pid, NT_S390_SYSTEM_CALL,
|
|
||||||
+ &io);
|
|
||||||
+ if (rc && errno != ESRCH) {
|
|
||||||
+ perror_func_msg("NT_S390_SYSTEM_CALL pid:%d", tcp->pid);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ /*
|
|
||||||
+ * The ptrace call returns thread.system_call, that stores raw
|
|
||||||
+ * int_code, and the syscall number part is the lowest 16 bits
|
|
||||||
+ * of it.
|
|
||||||
+ */
|
|
||||||
+ tcp->scno = scno & 0xffff;
|
|
||||||
+ } else {
|
|
||||||
+ tcp->scno = gpr2 ?: ARCH_REGSET.gprs[1];
|
|
||||||
+ }
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.28.0
|
|
||||||
|
|
@ -1,89 +0,0 @@
|
|||||||
From 1663bf8582b7187d04225105a62bbab9ebbb8109 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
|
||||||
Date: Thu, 4 Aug 2022 18:46:41 +0200
|
|
||||||
Subject: [PATCH] prctl: improve PR_SVE_[SG]ET_VL decoding
|
|
||||||
|
|
||||||
* src/prctl.c (sprint_sve_val): Add aux parameter, handle printing based
|
|
||||||
on it.
|
|
||||||
(SYS_FUNC(prctl)): <case PR_SVE_SET_VL>: Pass false as aux
|
|
||||||
to sprint_sve_val.
|
|
||||||
(SYS_FUNC(prctl)): <case PR_SVE_GET_VL>: Pass true as aux
|
|
||||||
to sprint_sve_val; return RVAL_HEX flag.
|
|
||||||
* NEWS: Mention it.
|
|
||||||
---
|
|
||||||
NEWS | 1 +
|
|
||||||
src/prctl.c | 38 +++++++++++++++++++++++++++++---------
|
|
||||||
2 files changed, 30 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/prctl.c b/src/prctl.c
|
|
||||||
index f3bc1a34821d..2611baa5588d 100644
|
|
||||||
--- a/src/prctl.c
|
|
||||||
+++ b/src/prctl.c
|
|
||||||
@@ -64,17 +64,37 @@ print_prctl_args(struct tcb *tcp, const unsigned int first)
|
|
||||||
}
|
|
||||||
|
|
||||||
static char *
|
|
||||||
-sprint_sve_val(kernel_ulong_t arg)
|
|
||||||
+sprint_sve_val(kernel_ulong_t arg, bool aux)
|
|
||||||
{
|
|
||||||
- static char out[sizeof("PR_SVE_SET_VL_ONEXEC|PR_SVE_VL_INHERIT|0x") +
|
|
||||||
- sizeof(kernel_ulong_t) * 2];
|
|
||||||
+ static char out[sizeof("0x /* PR_SVE_SET_VL_ONEXEC|PR_SVE_VL_INHERIT"
|
|
||||||
+ "|0x|0x */") + sizeof(kernel_ulong_t) * 2 * 3];
|
|
||||||
+
|
|
||||||
+ if (xlat_verbose(xlat_verbosity) == XLAT_STYLE_RAW) {
|
|
||||||
+ if (aux)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ xsprintf(out, "%#" PRI_klx, arg);
|
|
||||||
+
|
|
||||||
+ return out;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
kernel_ulong_t vl = arg & PR_SVE_VL_LEN_MASK;
|
|
||||||
kernel_ulong_t flags = arg & ~PR_SVE_VL_LEN_MASK;
|
|
||||||
- const char *flags_str = sprintflags("", pr_sve_vl_flags, flags);
|
|
||||||
|
|
||||||
- xsprintf(out, "%s%s%#" PRI_klx,
|
|
||||||
- flags_str ?: "", flags_str ? "|" : "", vl);
|
|
||||||
+ if (!flags && aux)
|
|
||||||
+ return NULL;
|
|
||||||
+
|
|
||||||
+ const char *flags_str = sprintflags_ex("", pr_sve_vl_flags, flags, '\0',
|
|
||||||
+ XLAT_STYLE_ABBREV);
|
|
||||||
+
|
|
||||||
+ if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
|
|
||||||
+ {
|
|
||||||
+ xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */",
|
|
||||||
+ arg, flags_str ?: "", flags_str ? "|" : "", vl);
|
|
||||||
+ } else {
|
|
||||||
+ xsprintf(out, "%s%s%#" PRI_klx,
|
|
||||||
+ flags_str ?: "", flags_str ? "|" : "", vl);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
@@ -229,7 +249,7 @@ SYS_FUNC(prctl)
|
|
||||||
case PR_SVE_SET_VL:
|
|
||||||
if (entering(tcp)) {
|
|
||||||
tprint_arg_next();
|
|
||||||
- tprints(sprint_sve_val(arg2));
|
|
||||||
+ tprints(sprint_sve_val(arg2, false));
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
ATTRIBUTE_FALLTHROUGH;
|
|
||||||
@@ -240,9 +260,9 @@ SYS_FUNC(prctl)
|
|
||||||
if (syserror(tcp) || tcp->u_rval == 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
- tcp->auxstr = sprint_sve_val(tcp->u_rval);
|
|
||||||
+ tcp->auxstr = sprint_sve_val(tcp->u_rval, true);
|
|
||||||
|
|
||||||
- return RVAL_STR;
|
|
||||||
+ return RVAL_HEX | RVAL_STR;
|
|
||||||
|
|
||||||
case PR_GET_SPECULATION_CTRL:
|
|
||||||
if (entering(tcp)) {
|
|
||||||
--
|
|
||||||
2.28.0
|
|
||||||
|
|
@ -1,130 +0,0 @@
|
|||||||
From 3ed268876dd5b65263449f9aeb18a1cc2604c707 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eugene Syromyatnikov <evgsyr@gmail.com>
|
|
||||||
Date: Tue, 25 Apr 2023 18:11:21 +0200
|
|
||||||
Subject: [PATCH] tests/prctl-sve: fix prctl(PR_SVE_GET_VL) return expected
|
|
||||||
value printing
|
|
||||||
|
|
||||||
* tests/prctl-sve.c: Print the expected return value string based
|
|
||||||
on the value returned, similarly to the way it is done
|
|
||||||
in tests/prctl-sme.c:print_sme_vl_arg().
|
|
||||||
|
|
||||||
Fixes: v5.13~8 "tests: improve test coverage of prctl syscall decoder"
|
|
||||||
Closes: https://github.com/strace/strace/issues/251
|
|
||||||
---
|
|
||||||
tests/prctl-sve.c | 24 ++++++++++++++++++++----
|
|
||||||
1 file changed, 20 insertions(+), 4 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/prctl-sve.c b/tests/prctl-sve.c
|
|
||||||
index 4cef149cfec6..216ebfc3f92c 100644
|
|
||||||
--- a/tests/prctl-sve.c
|
|
||||||
+++ b/tests/prctl-sve.c
|
|
||||||
@@ -43,12 +43,28 @@ main(void)
|
|
||||||
(unsigned long) 0xff, sprintrc(rc));
|
|
||||||
|
|
||||||
rc = syscall(__NR_prctl, PR_SVE_GET_VL);
|
|
||||||
- printf("prctl(PR_SVE_GET_VL) = %s", sprintrc(rc));
|
|
||||||
+ printf("prctl(PR_SVE_GET_VL) = ");
|
|
||||||
if (rc >= 0) {
|
|
||||||
- printf(" (PR_SVE_SET_VL_ONEXEC|PR_SVE_VL_INHERIT|%#lx)",
|
|
||||||
- (unsigned long) 0xff);
|
|
||||||
+ printf("%#lx", rc);
|
|
||||||
+ if (rc > 0xffff) {
|
|
||||||
+ printf(" (");
|
|
||||||
+ if (rc & PR_SVE_SET_VL_ONEXEC)
|
|
||||||
+ printf("PR_SVE_SET_VL_ONEXEC");
|
|
||||||
+ if (rc & PR_SVE_VL_INHERIT) {
|
|
||||||
+ printf("%sPR_SVE_VL_INHERIT",
|
|
||||||
+ rc & PR_SVE_SET_VL_ONEXEC ? "|" : "");
|
|
||||||
+ }
|
|
||||||
+ if (rc & ~0x6ffffU) {
|
|
||||||
+ printf("%s%#lx",
|
|
||||||
+ rc & 0x60000 ? "|" : "", rc & ~0x6ffffU);
|
|
||||||
+ }
|
|
||||||
+ printf("|%#lx)\n", rc & 0xffffU);
|
|
||||||
+ } else {
|
|
||||||
+ puts("");
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ puts(sprintrc(rc));
|
|
||||||
}
|
|
||||||
- puts("");
|
|
||||||
|
|
||||||
puts("+++ exited with 0 +++");
|
|
||||||
return 0;
|
|
||||||
diff --git a/tests-m32/prctl-sve.c b/tests-m32/prctl-sve.c
|
|
||||||
index 4cef149cfec6..216ebfc3f92c 100644
|
|
||||||
--- a/tests-m32/prctl-sve.c
|
|
||||||
+++ b/tests-m32/prctl-sve.c
|
|
||||||
@@ -43,12 +43,28 @@ main(void)
|
|
||||||
(unsigned long) 0xff, sprintrc(rc));
|
|
||||||
|
|
||||||
rc = syscall(__NR_prctl, PR_SVE_GET_VL);
|
|
||||||
- printf("prctl(PR_SVE_GET_VL) = %s", sprintrc(rc));
|
|
||||||
+ printf("prctl(PR_SVE_GET_VL) = ");
|
|
||||||
if (rc >= 0) {
|
|
||||||
- printf(" (PR_SVE_SET_VL_ONEXEC|PR_SVE_VL_INHERIT|%#lx)",
|
|
||||||
- (unsigned long) 0xff);
|
|
||||||
+ printf("%#lx", rc);
|
|
||||||
+ if (rc > 0xffff) {
|
|
||||||
+ printf(" (");
|
|
||||||
+ if (rc & PR_SVE_SET_VL_ONEXEC)
|
|
||||||
+ printf("PR_SVE_SET_VL_ONEXEC");
|
|
||||||
+ if (rc & PR_SVE_VL_INHERIT) {
|
|
||||||
+ printf("%sPR_SVE_VL_INHERIT",
|
|
||||||
+ rc & PR_SVE_SET_VL_ONEXEC ? "|" : "");
|
|
||||||
+ }
|
|
||||||
+ if (rc & ~0x6ffffU) {
|
|
||||||
+ printf("%s%#lx",
|
|
||||||
+ rc & 0x60000 ? "|" : "", rc & ~0x6ffffU);
|
|
||||||
+ }
|
|
||||||
+ printf("|%#lx)\n", rc & 0xffffU);
|
|
||||||
+ } else {
|
|
||||||
+ puts("");
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ puts(sprintrc(rc));
|
|
||||||
}
|
|
||||||
- puts("");
|
|
||||||
|
|
||||||
puts("+++ exited with 0 +++");
|
|
||||||
return 0;
|
|
||||||
diff --git a/tests-mx32/prctl-sve.c b/tests-mx32/prctl-sve.c
|
|
||||||
index 4cef149cfec6..216ebfc3f92c 100644
|
|
||||||
--- a/tests-mx32/prctl-sve.c
|
|
||||||
+++ b/tests-mx32/prctl-sve.c
|
|
||||||
@@ -43,12 +43,28 @@ main(void)
|
|
||||||
(unsigned long) 0xff, sprintrc(rc));
|
|
||||||
|
|
||||||
rc = syscall(__NR_prctl, PR_SVE_GET_VL);
|
|
||||||
- printf("prctl(PR_SVE_GET_VL) = %s", sprintrc(rc));
|
|
||||||
+ printf("prctl(PR_SVE_GET_VL) = ");
|
|
||||||
if (rc >= 0) {
|
|
||||||
- printf(" (PR_SVE_SET_VL_ONEXEC|PR_SVE_VL_INHERIT|%#lx)",
|
|
||||||
- (unsigned long) 0xff);
|
|
||||||
+ printf("%#lx", rc);
|
|
||||||
+ if (rc > 0xffff) {
|
|
||||||
+ printf(" (");
|
|
||||||
+ if (rc & PR_SVE_SET_VL_ONEXEC)
|
|
||||||
+ printf("PR_SVE_SET_VL_ONEXEC");
|
|
||||||
+ if (rc & PR_SVE_VL_INHERIT) {
|
|
||||||
+ printf("%sPR_SVE_VL_INHERIT",
|
|
||||||
+ rc & PR_SVE_SET_VL_ONEXEC ? "|" : "");
|
|
||||||
+ }
|
|
||||||
+ if (rc & ~0x6ffffU) {
|
|
||||||
+ printf("%s%#lx",
|
|
||||||
+ rc & 0x60000 ? "|" : "", rc & ~0x6ffffU);
|
|
||||||
+ }
|
|
||||||
+ printf("|%#lx)\n", rc & 0xffffU);
|
|
||||||
+ } else {
|
|
||||||
+ puts("");
|
|
||||||
+ }
|
|
||||||
+ } else {
|
|
||||||
+ puts(sprintrc(rc));
|
|
||||||
}
|
|
||||||
- puts("");
|
|
||||||
|
|
||||||
puts("+++ exited with 0 +++");
|
|
||||||
return 0;
|
|
||||||
--
|
|
||||||
2.28.0
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
|||||||
Index: strace-5.17/tests/qual_fault.test
|
|
||||||
===================================================================
|
|
||||||
--- strace-5.17.orig/tests/qual_fault.test 2022-06-09 15:47:28.871554186 +0200
|
|
||||||
+++ strace-5.17/tests/qual_fault.test 2022-06-09 15:50:50.016108370 +0200
|
|
||||||
@@ -83,19 +83,36 @@
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
-for err in '' ENOSYS 22 einval; do
|
|
||||||
+case "$STRACE_ARCH" in
|
|
||||||
+ aarch64)
|
|
||||||
+ ERRS='EnoSys 22'
|
|
||||||
+ NUMBERS1='2'
|
|
||||||
+ NUMBERS2='3'
|
|
||||||
+ NUMBERS3='5'
|
|
||||||
+ NUMBERS4='7'
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ ERRS='ENOSYS 22 einval'
|
|
||||||
+ NUMBERS1='1 2 3 7'
|
|
||||||
+ NUMBERS2='1 2 5 11'
|
|
||||||
+ NUMBERS3='1 2 3 7'
|
|
||||||
+ NUMBERS4='1 2 7 11'
|
|
||||||
+ ;;
|
|
||||||
+esac
|
|
||||||
+
|
|
||||||
+for err in '' $(echo $ERRS); do
|
|
||||||
for fault in writev desc,51; do
|
|
||||||
check_fault_injection \
|
|
||||||
writev $fault "$err" '' '' '' 1 -efault=chdir
|
|
||||||
check_fault_injection \
|
|
||||||
writev $fault "$err" '' '' '' 1 -efault=chdir -efault=none
|
|
||||||
- for F in 1 2 3 7; do
|
|
||||||
+ for F in $(echo $NUMBERS1); do
|
|
||||||
check_fault_injection \
|
|
||||||
writev $fault "$err" $F '' '' 1
|
|
||||||
check_fault_injection \
|
|
||||||
writev $fault "$err" $F '' + 1
|
|
||||||
|
|
||||||
- for L in 1 2 5 11; do
|
|
||||||
+ for L in $(echo $NUMBERS2); do
|
|
||||||
[ "$L" -ge "$F" ] ||
|
|
||||||
continue
|
|
||||||
check_fault_injection \
|
|
||||||
@@ -104,12 +121,12 @@
|
|
||||||
writev $fault "$err" $F $L + 1
|
|
||||||
done
|
|
||||||
|
|
||||||
- for S in 1 2 3 7; do
|
|
||||||
+ for S in $(echo $NUMBERS3); do
|
|
||||||
check_fault_injection \
|
|
||||||
writev $fault "$err" $F '' $S 1
|
|
||||||
check_fault_injection \
|
|
||||||
writev $fault "$err" $F '' $S 4
|
|
||||||
- for L in 1 2 7 11; do
|
|
||||||
+ for L in $(echo $NUMBERS4); do
|
|
||||||
[ "$L" -ge "$F" ] ||
|
|
||||||
continue
|
|
||||||
check_fault_injection \
|
|
@ -1,249 +1,59 @@
|
|||||||
Summary: Tracks and displays system calls associated with a running process
|
Summary: Tracks and displays system calls associated with a running process
|
||||||
Name: strace
|
Name: strace
|
||||||
Version: 5.18
|
Version: 5.18
|
||||||
Release: 2.1%{?dist}
|
Release: 2%{?dist}
|
||||||
# The test suite is GPLv2+, all the rest is LGPLv2.1+.
|
# The test suite is GPLv2+, all the rest is LGPLv2.1+.
|
||||||
License: LGPL-2.1+ and GPL-2.0+
|
License: LGPL-2.1-or-later and GPL-2.0-or-later
|
||||||
Group: Development/Debuggers
|
# Some distros require Group tag to be present,
|
||||||
URL: https://strace.io/
|
# some require Group tag to be absent,
|
||||||
Source: https://strace.io/files/%{version}/%{name}-%{version}.tar.xz
|
# some do not care about Group tag at all,
|
||||||
|
# and we have to cater for all of them.
|
||||||
|
%if 0%{?fedora} < 28 && 0%{?centos} < 8 && 0%{?rhel} < 8 && 0%{?suse_version} < 1500
|
||||||
|
Group: Development%{?suse_version:/Tools}/Debuggers
|
||||||
|
%endif
|
||||||
|
URL: https://strace.io
|
||||||
|
%if 0%{?fedora} >= 12 || 0%{?centos} >= 6 || 0%{?rhel} >= 6 || 0%{?suse_version} >= 1200
|
||||||
|
Source: https://strace.io/files/%{version}/strace-%{version}.tar.xz
|
||||||
|
BuildRequires: xz
|
||||||
|
%else
|
||||||
|
Source: strace-%{version}.tar.gz
|
||||||
|
%endif
|
||||||
|
BuildRequires: gcc gzip make
|
||||||
|
|
||||||
BuildRequires: libacl-devel time gcc gzip make
|
# Install Bluetooth headers for AF_BLUETOOTH sockets decoding.
|
||||||
|
%if 0%{?fedora} >= 18 || 0%{?centos} >= 6 || 0%{?rhel} >= 8 || 0%{?suse_version} >= 1200
|
||||||
BuildRequires: pkgconfig(bluez)
|
BuildRequires: pkgconfig(bluez)
|
||||||
BuildRequires: elfutils-devel binutils-devel
|
%endif
|
||||||
BuildRequires: libselinux-devel
|
|
||||||
|
|
||||||
## Reported by covscan
|
# Install elfutils-devel or libdw-devel to enable strace -k option.
|
||||||
## v5.2-3-g7ada13f "evdev: avoid bit vector decoding on non-successful and 0 return codes"
|
# Install binutils-devel to enable symbol demangling.
|
||||||
#Patch30: 0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch
|
%if 0%{?fedora} >= 20 || 0%{?centos} >= 6 || 0%{?rhel} >= 6
|
||||||
## v5.2-4-g96194ed "evdev: fix array size calculation in decode_bitset_"
|
%define buildrequires_stacktrace BuildRequires: elfutils-devel binutils-devel
|
||||||
#Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch
|
%define buildrequires_selinux BuildRequires: libselinux-devel
|
||||||
|
%endif
|
||||||
|
%if 0%{?suse_version} >= 1100
|
||||||
|
%define buildrequires_stacktrace BuildRequires: libdw-devel binutils-devel
|
||||||
|
%define buildrequires_selinux BuildRequires: libselinux-devel
|
||||||
|
%endif
|
||||||
|
%{?buildrequires_stacktrace}
|
||||||
|
%{?buildrequires_selinux}
|
||||||
|
|
||||||
### Pre-requisite for "tests: test evdev bitset decoding more thoroughly"
|
# OBS compatibility
|
||||||
## v4.25~89 "tests: check decoding of successful evdev ioctl"
|
%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release}
|
||||||
#Patch32: 0032-tests-check-decoding-of-successful-evdev-ioctl.patch
|
%define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)}
|
||||||
|
|
||||||
## Test for patches "evdev: avoid bit vector decoding on non-successful and 0
|
|
||||||
## return codes" and "evdev: fix array size calculation in decode_bitset_"
|
|
||||||
## v5.2-5-gcdd8206 "tests: test evdev bitset decoding more thoroughly"
|
|
||||||
#Patch33: 0033-tests-test-evdev-bitset-decoding-more-thoroughly.patch
|
|
||||||
|
|
||||||
### https://bugzilla.redhat.com/1747475 https://bugzilla.redhat.com/1747514
|
|
||||||
## v4.26~65 "s390x: beautify sthyi data tail prints"
|
|
||||||
#Patch34: 0034-s390x-beautify-sthyi-data-tail-prints.patch
|
|
||||||
|
|
||||||
## Reported by covscan (https://bugzilla.redhat.com/1747524
|
|
||||||
## https://bugzilla.redhat.com/1747526 https://bugzilla.redhat.com/1747530)
|
|
||||||
## v5.2-84-g91281fec "v4l2: avoid shifting left a signed number by 31 bit"
|
|
||||||
#Patch35: 0035-v4l2-avoid-shifting-left-a-signed-number-by-31-bit.patch
|
|
||||||
## v5.2~21 "syscall.c: avoid infinite loop in subcalls parsing"
|
|
||||||
#Patch36: 0036-syscall.c-avoid-infinite-loop-in-subcalls-parsing.patch
|
|
||||||
## v5.2~19 "kvm: avoid bogus vcpu_info assignment in vcpu_register"
|
|
||||||
#Patch37: 0037-kvm-avoid-bogus-vcpu_info-assignment-in-vcpu_registe.patch
|
|
||||||
## v5.4~97 "xlat: use unsgined type for mount_flags fallback values"
|
|
||||||
#Patch38: 0038-xlat-use-unsgined-type-for-mount_flags-fallback-valu.patch
|
|
||||||
|
|
||||||
## Missing stack traces on attach (https://bugzilla.redhat.com/1788636)
|
|
||||||
## RHEL 7: https://bugzilla.redhat.com/1790052
|
|
||||||
## RHEL 8: https://bugzilla.redhat.com/1790053
|
|
||||||
## RHEL 6 DTS: https://bugzilla.redhat.com/1790058
|
|
||||||
## RHEL 7 DTS: https://bugzilla.redhat.com/1790057
|
|
||||||
## RHEL 8 DTS: https://bugzilla.redhat.com/1790054
|
|
||||||
## v5.4-18-g69b2c33 "unwind-libdw: fix initialization of libdwfl cache"
|
|
||||||
#Patch39: 0039-unwind-libdw-fix-initialization-of-libdwfl-cache.patch
|
|
||||||
## v5.4-27-g35e080a "syscall: do not capture stack trace while the tracee executes strace code"
|
|
||||||
#Patch40: 0040-syscall-do-not-capture-stack-trace-while-the-tracee-.patch
|
|
||||||
## v5.4-63-g8e515c7 "tests: add strace-k-p test"
|
|
||||||
#Patch41: 0041-tests-add-strace-k-p-test.patch
|
|
||||||
|
|
||||||
## https://bugzilla.redhat.com/1746885
|
|
||||||
## v5.2-92-gc108f0b "sockaddr: properly decode sockaddr_hci addresses without hci_channel"
|
|
||||||
#Patch42: 0042-sockaddr-properly-decode-sockaddr_hci-addresses-with.patch
|
|
||||||
|
|
||||||
## Some ipc tests from strace internal testsuite occasionally fail
|
|
||||||
## https://bugzilla.redhat.com/1795251 https://bugzilla.redhat.com/1795261
|
|
||||||
## https://bugzilla.redhat.com/1794490 https://bugzilla.redhat.com/1795273
|
|
||||||
## v5.3~102 "tests: fix expected output for some ipc tests"
|
|
||||||
#Patch43: 0043-tests-fix-expected-output-for-some-ipc-tests.patch
|
|
||||||
## v5.4~49 "tests: fix -a argument in ipc_msgbuf-Xraw test"
|
|
||||||
#Patch44: 0044-tests-fix-a-argument-in-ipc_msgbuf-Xraw-test.patch
|
|
||||||
|
|
||||||
### Update bpf decoder, as bpf-obj_get_info_by_fd-prog-v.gen.test has started
|
|
||||||
### to fail after BPF rebase in RHEL 8.2 kernel.
|
|
||||||
## v5.0~98 "Fix preprocessor indentation", only the bpf_attr.h chunks
|
|
||||||
#Patch45: 0045-Fix-preprocessor-indentation.patch
|
|
||||||
## v5.0~24 "bpf: exclude bit fields from the check"
|
|
||||||
#Patch46: 0046-bpf-exclude-bit-fields-from-the-check.patch
|
|
||||||
## v5.0~23 "bpf: print struct bpf_prog_info.gpl_compatible"
|
|
||||||
#Patch47: 0047-bpf-print-struct-bpf_prog_info.gpl_compatible.patch
|
|
||||||
## v5.0~22 "bpf: add support for btf_* fields in BPF_MAP_CREATE"
|
|
||||||
#Patch48: 0048-bpf-add-support-for-btf_-fields-in-BPF_MAP_CREATE.patch
|
|
||||||
## v5.0~21 "bpf: add support for btf_* fields in struct bpf_map_info"
|
|
||||||
#Patch49: 0049-bpf-add-support-for-btf_-fields-in-struct-bpf_map_in.patch
|
|
||||||
## v5.0~20 "bpf: add support for *jited_ksyms and *jited_func_lens fields in struct bpf_prog_info"
|
|
||||||
#Patch50: 0050-bpf-add-support-for-jited_ksyms-and-jited_func_lens-.patch
|
|
||||||
## v5.0~19 "bpf: add support for new twelve fields in struct bpf_prog_info"
|
|
||||||
#Patch51: 0051-bpf-add-support-for-new-twelve-fields-in-struct-bpf_.patch
|
|
||||||
## v5.1~6 "tests: robustify bpf-obj_get_info_by_fd test against future kernels"
|
|
||||||
#Patch52: 0052-tests-robustify-bpf-obj_get_info_by_fd-test-against-.patch
|
|
||||||
|
|
||||||
## Patches 53-86 were on DTS 9 for
|
|
||||||
## "some devtoolset-9-strace internal tests fail on rhel-alt-7.6"
|
|
||||||
## https://bugzilla.redhat.com/1758201
|
|
||||||
|
|
||||||
## Update io_uring(2) decoder (https://bugzilla.redhat.com/1853011)
|
|
||||||
## v5.5~65 "io_uring: do not depend on kernel header definitions"
|
|
||||||
#Patch87: 0087-io_uring-do-not-depend-on-kernel-header-definitions.patch
|
|
||||||
## v5.5~64 "io_uring: de-indent the switch case statements"
|
|
||||||
#Patch88: 0088-io_uring-de-indent-the-switch-case-statements.patch
|
|
||||||
## v5.3~15 "Add support for printing local arrays to print_array"
|
|
||||||
#Patch89: 0089-Add-support-for-printing-local-arrays-to-print_array.patch
|
|
||||||
## v5.5~63 "Rework interface for printing local arrays"
|
|
||||||
#Patch90: 0090-Rework-interface-for-printing-local-arrays.patch
|
|
||||||
## v5.5~62 "io_uring: decode io_uring_params.resv with IS_ARRAY_ZERO and PRINT_FIELD_ARRAY"
|
|
||||||
#Patch91: 0091-io_uring-decode-io_uring_params.resv-with-IS_ARRAY_Z.patch
|
|
||||||
## v5.5~61 "io_uring: print io_sqring_offsets and io_cqring_offsets reserved fields"
|
|
||||||
#Patch92: 0092-io_uring-print-io_sqring_offsets-and-io_cqring_offse.patch
|
|
||||||
## v5.5~60 "io_uring: add support for IORING_REGISTER_EVENTFD and IORING_UNREGISTER_EVENTFD"
|
|
||||||
#Patch93: 0093-io_uring-add-support-for-IORING_REGISTER_EVENTFD-and.patch
|
|
||||||
## v5.5~59 "io_uring: implement decoding of struct io_uring_params.features"
|
|
||||||
#Patch94: 0094-io_uring-implement-decoding-of-struct-io_uring_param.patch
|
|
||||||
## v5.5~58 "xlat: add IORING_SETUP_CQSIZE to uring_setup_flags"
|
|
||||||
#Patch95: 0095-xlat-add-IORING_SETUP_CQSIZE-to-uring_setup_flags.patch
|
|
||||||
## v5.5~42 "io_uring: check struct io_* types automatically"
|
|
||||||
#Patch96: 0096-io_uring-check-struct-io_-types-automatically.patch
|
|
||||||
## v5.5~41 "io_uring: add support for IORING_REGISTER_FILES_UPDATE"
|
|
||||||
#Patch97: 0097-io_uring-add-support-for-IORING_REGISTER_FILES_UPDAT.patch
|
|
||||||
## v5.5~27 "xlat: update uring_setup_features constants"
|
|
||||||
#Patch98: 0098-xlat-update-uring_setup_features-constants.patch
|
|
||||||
## v5.5~26 "xlat: add IORING_SETUP_CLAMP to uring_setup_flags"
|
|
||||||
#Patch99: 0099-xlat-add-IORING_SETUP_CLAMP-to-uring_setup_flags.patch
|
|
||||||
## v5.5~25 "io_uring: add support of wq_fd field decoding to io_uring_setup"
|
|
||||||
#Patch100: 0100-io_uring-add-support-of-wq_fd-field-decoding-to-io_u.patch
|
|
||||||
## v5.6~190 "tests/io_uring_register: properly handle big endian architectures"
|
|
||||||
#Patch101: 0101-tests-io_uring_register-properly-handle-big-endian-a.patch
|
|
||||||
## v5.6~157 "io_uring: decode IORING_REGISTER_EVENTFD_ASYNC io_uring_reginster command"
|
|
||||||
#Patch102: 0102-io_uring-decode-IORING_REGISTER_EVENTFD_ASYNC-io_uri.patch
|
|
||||||
## v5.6~95 "io_uring: de-indent some code in io_uring_setup decoder"
|
|
||||||
#Patch103: 0103-io_uring-de-indent-some-code-in-io_uring_setup-decod.patch
|
|
||||||
## v5.3~29 "defs.h: introduce {opt,dispatch}_{word,klong}size"
|
|
||||||
#Patch104: 0104-defs.h-introduce-opt-dispatch-_-word-klong-size.patch
|
|
||||||
## v5.3~9 "Handle xlat verbosity in evdev bitset printing"
|
|
||||||
#Patch105: 0105-Handle-xlat-verbosity-in-evdev-bitset-printing.patch
|
|
||||||
## v5.6~94 "io_uring: support IORING_REGISTER_PROBE io_uring_register command"
|
|
||||||
#Patch106: 0106-io_uring-support-IORING_REGISTER_PROBE-io_uring_regi.patch
|
|
||||||
## v5.6~93 "io_uring: add support for IORING_{UN,}REGISTER_PERSONALITY commands"
|
|
||||||
#Patch107: 0107-io_uring-add-support-for-IORING_-UN-REGISTER_PERSONA.patch
|
|
||||||
## v5.6~17 "tests: fix clang compilation warning"
|
|
||||||
#Patch108: 0108-tests-fix-clang-compilation-warning.patch
|
|
||||||
## v5.6~10 "tests: workaround clang compilation warning"
|
|
||||||
#Patch109: 0109-tests-workaround-clang-compilation-warning.patch
|
|
||||||
## v5.7~87 "xlat: add IORING_FEAT_FAST_POLL to uring_setup_features"
|
|
||||||
#Patch110: 0110-xlat-add-IORING_FEAT_FAST_POLL-to-uring_setup_featur.patch
|
|
||||||
## v5.7~85 "xlat: update uring_ops"
|
|
||||||
#Patch111: 0111-xlat-update-uring_ops.patch
|
|
||||||
## v5.7~68 "tests: correct error message in io_uring_register test"
|
|
||||||
#Patch112: 0112-tests-correct-error-message-in-io_uring_register-tes.patch
|
|
||||||
## v5.8~58 "io_uring: Remove struct io_cqring_offsets compile time asserts"
|
|
||||||
#Patch113: 0113-io_uring-Remove-struct-io_cqring_offsets-compile-tim.patch
|
|
||||||
## v5.8~57 "io_uring: Add io_cqring_offset flags"
|
|
||||||
#Patch114: 0114-io_uring-Add-io_cqring_offset-flags.patch
|
|
||||||
## v5.8~47 "xlat: update IORING_* constants"
|
|
||||||
#Patch115: 0115-xlat-update-IORING_-constants.patch
|
|
||||||
## v5.5~71 "macros.h: introduce sizeof_field macro"
|
|
||||||
#Patch116: 0116-macros.h-introduce-sizeof_field-macro.patch
|
|
||||||
## v5.5~49 "types: new infrastructure for automatic checking of structure types"
|
|
||||||
#Patch117: 0117-types-new-infrastructure-for-automatic-checking-of-s.patch
|
|
||||||
## v5.8~59 "types: skip field lines that start with comments"
|
|
||||||
#Patch118: 0118-types-skip-field-lines-that-start-with-comments.patch
|
|
||||||
|
|
||||||
## PID namespace translation support
|
|
||||||
## https://bugzilla.redhat.com/1035434
|
|
||||||
## https://bugzilla.redhat.com/1725113 https://bugzilla.redhat.com/1790836
|
|
||||||
## https://bugzilla.redhat.com/1804334 https://bugzilla.redhat.com/1807458
|
|
||||||
# v5.8~62 "print_fields.h: add PRINT_FIELD_LEN macro"
|
|
||||||
#Patch119: 0119-print_fields.h-add-PRINT_FIELD_LEN-macro.patch
|
|
||||||
## v5.8~61 "Move ilog* functions from util.c to defs.h"
|
|
||||||
#Patch120: 0120-Move-ilog-functions-from-util.c-to-defs.h.patch
|
|
||||||
## v5.8~59 "types: skip field lines that start with comments"
|
|
||||||
#Patch121: 0121-types-skip-field-lines-that-start-with-comments.patch
|
|
||||||
## v5.8~54 "tests/inject-nf.test: replace getpid with geteuid"
|
|
||||||
#Patch122: 0122-tests-inject-nf.test-replace-getpid-with-geteuid.patch
|
|
||||||
## v5.8~18 "fcntl: use print_fields.h macros"
|
|
||||||
#Patch123: 0123-fcntl-use-print_fields.h-macros.patch
|
|
||||||
## v5.8~17 "kcmp: fix KCMP_FILE decoding"
|
|
||||||
#Patch124: 0124-kcmp-fix-KCMP_FILE-decoding.patch
|
|
||||||
## v5.8~15 "printsiginfo: fix printing of siginfo_t.si_pid and siginfo_t.si_uid"
|
|
||||||
#Patch125: 0125-printsiginfo-fix-printing-of-siginfo_t.si_pid-and-si.patch
|
|
||||||
## v5.8~14 "Use PRINT_FIELD_UID instead of printuid where appropriate"
|
|
||||||
#Patch126: 0126-Use-PRINT_FIELD_UID-instead-of-printuid-where-approp.patch
|
|
||||||
## v5.8~10 "Consistently print process ids as signed integers"
|
|
||||||
#Patch127: 0127-Consistently-print-process-ids-as-signed-integers.patch
|
|
||||||
## v5.8~9 "Remove tcb parameter of read_int_from_file"
|
|
||||||
#Patch128: 0128-Remove-tcb-parameter-of-read_int_from_file.patch
|
|
||||||
## v5.8~6 "Add "struct tcb *" parameters to various functions"
|
|
||||||
#Patch129: 0129-Add-struct-tcb-parameters-to-various-functions.patch
|
|
||||||
## v5.8~53 "Modify %process class: trace syscalls associated with process lifecycle"
|
|
||||||
#Patch130: 0130-Modify-process-class-trace-syscalls-associated-with-.patch
|
|
||||||
## v5.8~5 "Introduce SYS_FUNC(tkill)"
|
|
||||||
#Patch131: 0131-Introduce-SYS_FUNC-tkill.patch
|
|
||||||
## v5.8~4 "tests: check decoding of tkill syscall"
|
|
||||||
#Patch132: 0132-tests-check-decoding-of-tkill-syscall.patch
|
|
||||||
## v5.8~3 "tests: check decoding of tgkill syscall"
|
|
||||||
#Patch133: 0133-tests-check-decoding-of-tgkill-syscall.patch
|
|
||||||
## v5.8-5-gdea0284 "PID namespace translation support"
|
|
||||||
#Patch134: 0134-PID-namespace-translation-support.patch
|
|
||||||
## v5.8-6-g173257d "Use printpid in decoders"
|
|
||||||
#Patch135: 0135-Use-printpid-in-decoders.patch
|
|
||||||
## v5.8-7-g18c2208 "Use get_proc_pid for /proc paths"
|
|
||||||
#Patch136: 0136-Use-get_proc_pid-for-proc-paths.patch
|
|
||||||
## v5.8-8-g7ecee07 "Implement testing framework for pidns"
|
|
||||||
#Patch137: 0137-Implement-testing-framework-for-pidns.patch
|
|
||||||
## v5.8-9-gf350ce0 "Add tests for PID namespace translation"
|
|
||||||
#Patch138: 0138-Add-tests-for-PID-namespace-translation.patch
|
|
||||||
|
|
||||||
## v5.12~55 "tests: add fchmod-y test"
|
|
||||||
#Patch142: 0142-tests-add-fchmod-y-test.patch
|
|
||||||
## v5.12~54 "tests: introduce create_and_enter_subdir and leave_and_remove_subdir"
|
|
||||||
#Patch143: 0143-tests-introduce-create_and_enter_subdir-and-leave_an.patch
|
|
||||||
## v5.8~36 "tests: check decoding of faccessat syscall in -P, -y, and -yy modes"
|
|
||||||
#Patch144: 0144-tests-check-decoding-of-faccessat-syscall-in-P-y-and.patch
|
|
||||||
## v5.12~97 "xmalloc: introduce xasprintf"
|
|
||||||
#Patch145: 0145-xmalloc-introduce-xasprintf.patch
|
|
||||||
## v5.12~96 "tests: use xasprintf instead of asprintf"
|
|
||||||
#Patch146: 0146-tests-use-xasprintf-instead-of-asprintf.patch
|
|
||||||
## v5.12~156 "file_handle: print f_handle as a hexadecimal string"
|
|
||||||
#Patch147: 0147-file_handle-print-f_handle-as-a-hexadecimal-string.patch
|
|
||||||
## v5.10~47 "tests: fix execve test with fresh linux kernels"
|
|
||||||
#Patch148: 0148-tests-fix-execve-test-with-fresh-linux-kernels.patch
|
|
||||||
## v5.12~49 "Implement --secontext[=full] option to display SELinux contexts"
|
|
||||||
#Patch149: 0149-Implement-secontext-full-option-to-display-SELinux-c.patch
|
|
||||||
# v5.13-14-g9623154 "m4/mpers.m4: generate HAVE_*_SELINUX_RUNTIME config defines"
|
|
||||||
#Patch155: 0155-m4-mpers.m4-generate-HAVE_-_SELINUX_RUNTIME-config-d.patch
|
|
||||||
|
|
||||||
## v5.9~28 "Introduce GLIBC_PREREQ_GE and GLIBC_PREREQ_LT macros"
|
|
||||||
#Patch156: 0156-Introduce-GLIBC_PREREQ_GE-and-GLIBC_PREREQ_LT-macros.patch
|
|
||||||
## v5.9~27 "tests/ipc_msg.c: disable TEST_MSGCTL_BOGUS_ADDR on glibc >= 2.32"
|
|
||||||
#Patch157: 0157-tests-ipc_msg.c-disable-TEST_MSGCTL_BOGUS_ADDR-on-gl.patch
|
|
||||||
## v5.10~46 "tests: disable TEST_MSGCTL_BOGUS_ADDR in ipc_msg test on glibc >= 2.31"
|
|
||||||
#Patch158: 0158-tests-disable-TEST_MSGCTL_BOGUS_ADDR-in-ipc_msg-test.patch
|
|
||||||
## v5.10~22 "tests: disable tests for invalid msgctl commands on glibc >= 2.32"
|
|
||||||
#Patch159: 0159-tests-disable-tests-for-invalid-msgctl-commands-on-g.patch
|
|
||||||
## v5.9~11 "tests: disable shmctl IPC_STAT test with a bogus address on glibc >= 2.32"
|
|
||||||
#Patch160: 0160-tests-disable-shmctl-IPC_STAT-test-with-a-bogus-addr.patch
|
|
||||||
## v5.9~10 "tests: disable tests for invalid shmctl commands on glibc >= 2.32"
|
|
||||||
#Patch161: 0161-tests-disable-tests-for-invalid-shmctl-commands-on-g.patch
|
|
||||||
## v5.9~12 "tests: disable tests for invalid semctl commands on glibc >= 2.32"
|
|
||||||
#Patch162: 0162-tests-disable-tests-for-invalid-semctl-commands-on-g.patch
|
|
||||||
|
|
||||||
|
## v5.13-10-g0211fdc "tests: change sockopt-timestamp test to use syscall(__NR_recvmsg)"
|
||||||
|
#Patch141: 0141-tests-change-sockopt-timestamp-test-to-use-syscall-_.patch
|
||||||
## v5.13-55-g6b2191f "filter_qualify: free allocated data on the error path exit of parse_poke_token"
|
## v5.13-55-g6b2191f "filter_qualify: free allocated data on the error path exit of parse_poke_token"
|
||||||
#Patch163: 0163-filter_qualify-free-allocated-data-on-the-error-path.patch
|
#Patch150: 0150-filter_qualify-free-allocated-data-on-the-error-path.patch
|
||||||
## v5.13-56-g80dc60c "macros: expand BIT macros, add MASK macros; add *_SAFE macros"
|
## v5.13-56-g80dc60c "macros: expand BIT macros, add MASK macros; add *_SAFE macros"
|
||||||
#Patch164: 0164-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch
|
#Patch151: 0151-macros-expand-BIT-macros-add-MASK-macros-add-_SAFE-m.patch
|
||||||
## v5.13-58-g94ae5c2 "trie: use BIT* and MASK* macros"
|
## v5.13-58-g94ae5c2 "trie: use BIT* and MASK* macros"
|
||||||
#Patch165: 0165-trie-use-BIT-and-MASK-macros.patch
|
#Patch152: 0152-trie-use-BIT-and-MASK-macros.patch
|
||||||
## v5.13-65-g41b753e "tee: rewrite num_params access in tee_fetch_buf_data"
|
## v5.13-65-g41b753e "tee: rewrite num_params access in tee_fetch_buf_data"
|
||||||
#Patch166: 0166-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch
|
#Patch153: 0153-tee-rewrite-num_params-access-in-tee_fetch_buf_data.patch
|
||||||
|
## v5.14~12 "tests: call setsockopt directly in sockopt-timestamp"
|
||||||
|
#Patch154: 0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch
|
||||||
|
|
||||||
## v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition"
|
## v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition"
|
||||||
#Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
|
#Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch
|
||||||
@ -280,69 +90,6 @@ Patch181: 0181-secontext-fix-expected-SELinux-context-check-for-unl.patch
|
|||||||
# v5.18-21-g5338636 "tests/bpf: fix sloppy low FD number usage"
|
# v5.18-21-g5338636 "tests/bpf: fix sloppy low FD number usage"
|
||||||
Patch182: 0182-tests-bpf-fix-sloppy-low-FD-number-usage.patch
|
Patch182: 0182-tests-bpf-fix-sloppy-low-FD-number-usage.patch
|
||||||
|
|
||||||
## https://issues.redhat.com/browse/RHEL-8570
|
|
||||||
# v6.11-21-gc7e0ea6d7 "syscall: do not use uninitialized parts of struct ptrace_syscall_info"
|
|
||||||
Patch183: 0183-syscall-do-not-use-uninitialized-parts-of-struct-ptr.patch
|
|
||||||
# v6.11-22-g2048c136b "startup_tcb: add a comment"
|
|
||||||
Patch184: 0184-startup_tcb-add-a-comment.patch
|
|
||||||
# v6.11-23-g3bf08cbb3 "tests: add another test of restart_syscall decoding"
|
|
||||||
Patch185: 0185-tests-add-another-test-of-restart_syscall-decoding.patch
|
|
||||||
|
|
||||||
## kernel-5.14.0-417.el9~9 (RHEL 9.4+) has v6.8-rc1~131^2~223 "tcp: Dump bound-only sockets in inet_diag."
|
|
||||||
# v6.9~27 "tests: workaround net-yy-inet* for new kernels"
|
|
||||||
Patch186: 0186-tests-workaround-net-yy-inet-for-new-kernels.patch
|
|
||||||
## Update linkat--secontext_mismatch test to fix the failures reported by QE
|
|
||||||
# v6.11~4 "tests: avoid linkat--secontext_mismatch failures on setfilecon errors"
|
|
||||||
Patch187: 0187-tests-avoid-linkat-secontext_mismatch-failures-on-se.patch
|
|
||||||
# "linux/s390/get_scno.c: use NT_S390_SYSTEM_CALL if gprs[2] is clobbered"
|
|
||||||
Patch188: 0188-linux-s390-get_scno.c-use-NT_S390_SYSTEM_CALL-if-gpr.patch
|
|
||||||
### Skip these two patches present in RHEL 9/10 as sockopt-sol_socket test doesn't exist in strace-5.18
|
|
||||||
## "tests: move k_setsockopt definition into a separate"
|
|
||||||
#Patch189: 0189-tests-move-k_setsockopt-definition-into-a-separate-f.patch
|
|
||||||
## "tests/sockopt-timestamp.c: use k_getsockopt and k_setsockopt"
|
|
||||||
#Patch190: 0190-tests-sockopt-timestamp.c-use-k_getsockopt-and-k_set.patch
|
|
||||||
## Fix for prctl-sve.gen test failure on aarch64
|
|
||||||
# v5.19~14 "prctl: improve PR_SVE_[SG]ET_VL decoding"
|
|
||||||
Patch191: 0191-prctl-improve-PR_SVE_-SG-ET_VL-decoding.patch
|
|
||||||
# v6.3~32 "tests/prctl-sve: fix prctl(PR_SVE_GET_VL) return expected value printing"
|
|
||||||
Patch192: 0192-tests-prctl-sve-fix-prctl-PR_SVE_GET_VL-return-expec.patch
|
|
||||||
|
|
||||||
### Wire up rseq and kexec_file_load in order to avoid kexec_file_load
|
|
||||||
### test failure on aarch64. Addresses https://bugzilla.redhat.com/1676045
|
|
||||||
### ("strace: FTBFS in Fedora rawhide/f30").
|
|
||||||
## v5.0~62 "Wire up rseq syscall on architectures that use generic unistd.h"
|
|
||||||
#Patch1000: 1000-Wire-up-rseq-syscall-on-architectures-that-use-gener.patch
|
|
||||||
## v5.0~61 "Wire up kexec_file_load syscall on architectures that use generic unistd.h"
|
|
||||||
#Patch1001: 1001-Wire-up-kexec_file_load-syscall-on-architectures-tha.patch
|
|
||||||
|
|
||||||
### RHEL7-only: headers on some builders do not provide O_TMPFILE
|
|
||||||
#Patch2000: 2000-strace-provide-O_TMPFILE-fallback-definition.patch
|
|
||||||
## RHEL-only: aarch64 brew builders are extremely slow on qual_fault.test
|
|
||||||
Patch2001: 2001-limit-qual_fault-scope-on-aarch64.patch
|
|
||||||
### RHEL8.2-only: disable ksysent test due to missing rebase
|
|
||||||
#Patch2002: 2002-disable-ksysent-on-8.2.patch
|
|
||||||
### RHEL-only: avoid ARRAY_SIZE macro re-definition in libiberty.h
|
|
||||||
## No longer needed, since upstream commit v5.14~14
|
|
||||||
#Patch2003: 2003-undef-ARRAY_SIZE.patch
|
|
||||||
### RHEL-only: glibc-2.32.9000-147-ga16d2abd496bd974a882,
|
|
||||||
### glibc-2.32.9000-149-gbe9b0b9a012780a403a2 and
|
|
||||||
### glibc-2.32.9000-207-g9ebaabeaac1a96b0d91f have been backported in RHEL.
|
|
||||||
## No longer needed, since upstream commit v5.15~9
|
|
||||||
#Patch2004: 2004-glibc-msgctl-semctl-shmctl-backport-workaround.patch
|
|
||||||
|
|
||||||
|
|
||||||
# We no longer need to build a separate strace32 binary, but we don't want
|
|
||||||
# to break existing strace32 users' workflows.
|
|
||||||
%define strace32_arches ppc64 s390x
|
|
||||||
|
|
||||||
%ifarch %{strace32_arches}
|
|
||||||
%define _isa_compat %{?__isa_name:(%{__isa_name}-32)}%{!?__isa:%{nil}}
|
|
||||||
%define evr %{?epoch:%{epoch}:}%{version}-%{release}
|
|
||||||
Provides: strace32 = %{evr}
|
|
||||||
# strace32 was a real package before strace-4.24 in RHEL
|
|
||||||
Obsoletes: strace32 < 4.24
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# Fallback definitions for make_build/make_install macros
|
# Fallback definitions for make_build/make_install macros
|
||||||
%{?!__make: %global __make %_bindir/make}
|
%{?!__make: %global __make %_bindir/make}
|
||||||
%{?!__install: %global __install %_bindir/install}
|
%{?!__install: %global __install %_bindir/install}
|
||||||
@ -362,102 +109,15 @@ received by a process.
|
|||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
|
||||||
#%patch30 -p1
|
#%patch141 -p1
|
||||||
#%patch31 -p1
|
#%patch150 -p1
|
||||||
#%patch32 -p1
|
#%patch151 -p1
|
||||||
#%patch33 -p1
|
#%patch152 -p1
|
||||||
#%patch34 -p1
|
#%patch153 -p1
|
||||||
#%patch35 -p1
|
#%patch154 -p1
|
||||||
#%patch36 -p1
|
|
||||||
#%patch37 -p1
|
|
||||||
#%patch38 -p1
|
|
||||||
#%patch39 -p1
|
|
||||||
#%patch40 -p1
|
|
||||||
#%patch41 -p1
|
|
||||||
#%patch42 -p1
|
|
||||||
#%patch43 -p1
|
|
||||||
#%patch44 -p1
|
|
||||||
#%patch45 -p1
|
|
||||||
#%patch46 -p1
|
|
||||||
#%patch47 -p1
|
|
||||||
#%patch48 -p1
|
|
||||||
#%patch49 -p1
|
|
||||||
#%patch50 -p1
|
|
||||||
#%patch51 -p1
|
|
||||||
#%patch52 -p1
|
|
||||||
#%patch87 -p1
|
|
||||||
#%patch88 -p1
|
|
||||||
#%patch89 -p1
|
|
||||||
#%patch90 -p1
|
|
||||||
#%patch91 -p1
|
|
||||||
#%patch92 -p1
|
|
||||||
#%patch93 -p1
|
|
||||||
#%patch94 -p1
|
|
||||||
#%patch95 -p1
|
|
||||||
#%patch96 -p1
|
|
||||||
#%patch97 -p1
|
|
||||||
#%patch98 -p1
|
|
||||||
#%patch99 -p1
|
|
||||||
#%patch100 -p1
|
|
||||||
#%patch101 -p1
|
|
||||||
#%patch102 -p1
|
|
||||||
#%patch103 -p1
|
|
||||||
#%patch104 -p1
|
|
||||||
#%patch105 -p1
|
|
||||||
#%patch106 -p1
|
|
||||||
#%patch107 -p1
|
|
||||||
#%patch108 -p1
|
|
||||||
#%patch109 -p1
|
|
||||||
#%patch110 -p1
|
|
||||||
#%patch111 -p1
|
|
||||||
#%patch112 -p1
|
|
||||||
#%patch113 -p1
|
|
||||||
#%patch114 -p1
|
|
||||||
#%patch115 -p1
|
|
||||||
#%patch116 -p1
|
|
||||||
#%patch117 -p1
|
|
||||||
#%patch118 -p1
|
|
||||||
#%patch119 -p1
|
|
||||||
#%patch120 -p1
|
|
||||||
#%patch121 -p1
|
|
||||||
#%patch122 -p1
|
|
||||||
#%patch123 -p1
|
|
||||||
#%patch124 -p1
|
|
||||||
#%patch125 -p1
|
|
||||||
#%patch126 -p1
|
|
||||||
#%patch127 -p1
|
|
||||||
#%patch128 -p1
|
|
||||||
#%patch129 -p1
|
|
||||||
#%patch130 -p1
|
|
||||||
#%patch131 -p1
|
|
||||||
#%patch132 -p1
|
|
||||||
#%patch133 -p1
|
|
||||||
#%patch134 -p1
|
|
||||||
#%patch135 -p1
|
|
||||||
#%patch136 -p1
|
|
||||||
#%patch137 -p1
|
|
||||||
#%patch138 -p1
|
|
||||||
#%patch142 -p1
|
|
||||||
#%patch143 -p1
|
|
||||||
#%patch144 -p1
|
|
||||||
#%patch145 -p1
|
|
||||||
#%patch146 -p1
|
|
||||||
#%patch147 -p1
|
|
||||||
#%patch148 -p1
|
|
||||||
#%patch149 -p1
|
|
||||||
#%patch155 -p1
|
|
||||||
#%patch156 -p1
|
|
||||||
#%patch157 -p1
|
|
||||||
#%patch158 -p1
|
|
||||||
#%patch159 -p1
|
|
||||||
#%patch160 -p1
|
|
||||||
#%patch161 -p1
|
|
||||||
#%patch162 -p1
|
|
||||||
#%patch163 -p1
|
|
||||||
#%patch164 -p1
|
|
||||||
#%patch165 -p1
|
|
||||||
#%patch166 -p1
|
|
||||||
#%patch167 -p1
|
#%patch167 -p1
|
||||||
|
|
||||||
#%patch168 -p1
|
#%patch168 -p1
|
||||||
#%patch169 -p1
|
#%patch169 -p1
|
||||||
#%patch170 -p1
|
#%patch170 -p1
|
||||||
@ -475,27 +135,6 @@ received by a process.
|
|||||||
%patch181 -p1
|
%patch181 -p1
|
||||||
%patch182 -p1
|
%patch182 -p1
|
||||||
|
|
||||||
%patch183 -p1
|
|
||||||
%patch184 -p1
|
|
||||||
%patch185 -p1
|
|
||||||
|
|
||||||
%patch186 -p1
|
|
||||||
%patch187 -p1
|
|
||||||
%patch188 -p1
|
|
||||||
#%patch189 -p1
|
|
||||||
#%patch190 -p1
|
|
||||||
%patch191 -p1
|
|
||||||
%patch192 -p1
|
|
||||||
|
|
||||||
#%patch1000 -p1
|
|
||||||
#%patch1001 -p1
|
|
||||||
|
|
||||||
#%patch2000 -p1
|
|
||||||
%patch2001 -p1
|
|
||||||
#%patch2002 -p1
|
|
||||||
#%patch2003 -p1
|
|
||||||
#%patch2004 -p1
|
|
||||||
|
|
||||||
chmod a+x tests/*.test
|
chmod a+x tests/*.test
|
||||||
|
|
||||||
echo -n %version-%release > .tarball-version
|
echo -n %version-%release > .tarball-version
|
||||||
@ -515,31 +154,23 @@ kver="$(printf '%%s\n%%s\n' '#include <linux/version.h>' 'LINUX_VERSION_CODE' |
|
|||||||
printf 'kernel-headers %%s.%%s.%%s\n' $(($kver/65536)) $(($kver/256%%256)) $(($kver%%256))
|
printf 'kernel-headers %%s.%%s.%%s\n' $(($kver/65536)) $(($kver/256%%256)) $(($kver%%256))
|
||||||
echo 'END OF BUILD ENVIRONMENT INFORMATION'
|
echo 'END OF BUILD ENVIRONMENT INFORMATION'
|
||||||
|
|
||||||
CFLAGS=" $RPM_OPT_FLAGS $LDFLAGS "
|
CFLAGS="$RPM_OPT_FLAGS $LDFLAGS"
|
||||||
# Removing explicit -m64 as it breaks mpers
|
# Removing explicit -m64 as it breaks mpers
|
||||||
[ "x${CFLAGS#* -m64 }" = "x${CFLAGS}" ] || CFLAGS=$(echo "$CFLAGS" | sed 's/ -m64 / /g')
|
[ "x${CFLAGS#*-m64}" = "x${CFLAGS}" ] || CFLAGS=$(echo "$CFLAGS" | sed 's/-m64//g')
|
||||||
export CFLAGS
|
export CFLAGS
|
||||||
|
|
||||||
CPPFLAGS=" -isystem %{_includedir} %{optflags} "
|
CPPFLAGS="-isystem %{_includedir} %{optflags}"
|
||||||
# Removing explicit -m64 as it breaks mpers
|
# Removing explicit -m64 as it breaks mpers
|
||||||
[ "x${CPPFLAGS#* -m64 }" = "x${CPPFLAGS}" ] || CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/ -m64 / /g')
|
[ "x${CPPFLAGS#*-m64}" = "x${CPPFLAGS}" ] || CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/-m64//g')
|
||||||
export CPPFLAGS
|
export CPPFLAGS
|
||||||
|
|
||||||
CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD
|
CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD
|
||||||
%configure --enable-mpers=check --with-libdw --with-libiberty
|
%configure --enable-mpers=check
|
||||||
%make_build
|
%make_build
|
||||||
|
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install
|
%make_install
|
||||||
|
|
||||||
%ifarch %{strace32_arches}
|
|
||||||
ln -s ./strace %{buildroot}%{_bindir}/strace32
|
|
||||||
%endif
|
|
||||||
|
|
||||||
# remove unpackaged files from the buildroot
|
|
||||||
rm -f %{buildroot}%{_bindir}/strace-graph
|
|
||||||
|
|
||||||
# some say uncompressed changelog files are too big
|
# some say uncompressed changelog files are too big
|
||||||
for f in ChangeLog ChangeLog-CVS; do
|
for f in ChangeLog ChangeLog-CVS; do
|
||||||
gzip -9n < "$f" > "$f".gz &
|
gzip -9n < "$f" > "$f".gz &
|
||||||
@ -547,14 +178,8 @@ done
|
|||||||
wait
|
wait
|
||||||
|
|
||||||
%check
|
%check
|
||||||
# This is needed since patch does not set x bit to the newly created files
|
|
||||||
chmod u+x tests/*.test tests-m32/*.test tests-mx32/*.test
|
|
||||||
|
|
||||||
%{buildroot}%{_bindir}/strace -V
|
%{buildroot}%{_bindir}/strace -V
|
||||||
|
%make_build -k check VERBOSE=1
|
||||||
# We have to limit concurrent execution of tests as some time-sensitive tests
|
|
||||||
# start to fail if the reported time is way too off from the expected one.
|
|
||||||
%make_build -k check VERBOSE=1 V=1
|
|
||||||
echo 'BEGIN OF TEST SUITE INFORMATION'
|
echo 'BEGIN OF TEST SUITE INFORMATION'
|
||||||
tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log
|
tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log
|
||||||
find tests* -type f -name '*.log' -print0 |
|
find tests* -type f -name '*.log' -print0 |
|
||||||
@ -562,126 +187,93 @@ find tests* -type f -name '*.log' -print0 |
|
|||||||
echo 'END OF TEST SUITE INFORMATION'
|
echo 'END OF TEST SUITE INFORMATION'
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%defattr(-,root,root)
|
%maybe_use_defattr
|
||||||
%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING LGPL-2.1-or-later NEWS README
|
%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING NEWS README
|
||||||
%{_bindir}/strace
|
%{_bindir}/strace
|
||||||
%ifarch %{strace32_arches}
|
|
||||||
%{_bindir}/strace32
|
|
||||||
%endif
|
|
||||||
%{_bindir}/strace-log-merge
|
%{_bindir}/strace-log-merge
|
||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Tue Oct 29 2024 Eugene Syromiatnikov <esyr@redhat.com> - 5.18-2.1
|
|
||||||
- Fix incorrect syscall name reporting in restart_syscall() on attach when
|
|
||||||
PTRACE_GET_SYSCALL_INFO is in use (RHEL-8570).
|
|
||||||
- Update net-yy-inet*, linkat--secontext_mismatch, and prctl-sve tests.
|
|
||||||
|
|
||||||
* Mon Jul 11 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.18-2
|
* Mon Jul 11 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.18-2
|
||||||
- Fix the issues reported by covscan (#2103068).
|
- Fix the issues reported by covscan (#2103068).
|
||||||
- Fix SELinux context matching for the deleted paths (#2087693).
|
- Fix SELinux context matching for the deleted paths (#2087693).
|
||||||
- Fix sloppy FD usage in the bpf test (#2103137).
|
- Fix sloppy FD usage in the bpf test (#2103137).
|
||||||
|
- Cater for RHEL 9 license requirement idiosyncrasies (#2103032).
|
||||||
|
|
||||||
* Wed Jun 22 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.18-1
|
* Wed Jun 22 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.18-1
|
||||||
- Rebase to v5.18; drop upstream patches on top of 5.13 (#2084000).
|
- Rebase to v5.18; drop upstream patches on top of 5.13 (#2084002).
|
||||||
|
|
||||||
* Mon Feb 07 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-4
|
* Mon Feb 07 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-7
|
||||||
- Update tests-m32 and tests-mx32 with --secontext=mismatch option support
|
- Update tests-m32 and tests-mx32 with --secontext=mismatch option support
|
||||||
changes (#2046259).
|
changes (#2046264).
|
||||||
|
|
||||||
* Wed Jan 19 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-3
|
* Wed Jan 19 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-6
|
||||||
- Add --secontext=mismatch option support (#2038810).
|
- Add --secontext=mismatch option support (#2038965).
|
||||||
|
|
||||||
* Wed Jan 05 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-2
|
* Wed Jan 05 2022 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-5
|
||||||
- Fix incorrect ifname printing buffer size (#2028158).
|
- Fix incorrect ifname printing buffer size (#2028166).
|
||||||
|
|
||||||
* Wed Oct 20 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-1
|
* Mon Aug 23 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-3
|
||||||
- Rebase to v5.13; drop upstream patches on top of 5.7 (#2015917).
|
- Address some issues reported by covscan (#1996691).
|
||||||
- Address some issues reported by covscan.
|
- Replace 0141-tests-disable-sockopt-timestamp-on-new-glibc-with-__.patch
|
||||||
|
with upstream v5.13-10-g0211fdc "tests: change sockopt-timestamp test
|
||||||
|
to use syscall(__NR_recvmsg)"
|
||||||
|
and 0154-tests-call-setsockopt-directly-in-sockopt-timestamp.patch.
|
||||||
|
- Undo forceful injection of -m64 into CFLAGS/CPPFLAGS to avoid breaking
|
||||||
|
mpers and its tests (#1996676).
|
||||||
|
|
||||||
* Mon Aug 09 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-3
|
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 5.13-2
|
||||||
- Add SELnux context decoding support (#1946500).
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
* Mon Nov 09 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-2
|
* Tue Jul 20 2021 Eugene Syromiatnikov <esyr@redhat.com> - 5.13-1
|
||||||
- Add PID namespace translation support (#1725113).
|
- Rebase to v5.13 (#1925722, #1925967, #1928305, #1973048).
|
||||||
|
|
||||||
* Mon Nov 09 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.7-1
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 5.10-2
|
||||||
- Rebase to v5.7; drop upstream patches on top of 5.1 (#1873229).
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
* Mon Aug 24 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-2
|
* Mon Dec 14 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.10-1
|
||||||
- Update io_uring(2) decoder (#1853011).
|
- v5.9 -> v5.10.
|
||||||
- Fix "Obsoletes:" tag on s390x (#1852960).
|
|
||||||
|
|
||||||
* Thu Jan 30 2020 Eugene Syromiatnikov <esyr@redhat.com> - 5.1-1
|
* Thu Sep 24 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.9-1
|
||||||
- Rebase to strace 5.1 (#1777847).
|
- v5.8 -> v5.9.
|
||||||
|
|
||||||
* Thu Jan 30 2020 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-9
|
* Thu Aug 06 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.8-1
|
||||||
- Fix the "extra tokens at end of #ifdef directive" warning:
|
- v5.7 -> v5.8.
|
||||||
579f2702 "bpf: exclude bit fields from the check".
|
|
||||||
|
|
||||||
* Mon Jan 27 2020 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-8
|
* Mon Jun 01 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.7-1
|
||||||
- Fix expected alignment for IPC tests (#1795251):
|
- v5.6 -> v5.7.
|
||||||
4377e3a1 "tests: fix expected output for some ipc tests", and
|
|
||||||
a75c7c4b "tests: fix -a argument in ipc_msgbuf-Xraw test".
|
|
||||||
- Update tests-m32/looping_threads.test and tests-mx32/looping_threads.test
|
|
||||||
in 0025-tests-check-tracing-of-looping-threads.patch.
|
|
||||||
- Update the bpf syscall decoder:
|
|
||||||
d6c71dd0 "Fix preprocessor indentation",
|
|
||||||
cabd6955 "bpf: print struct bpf_prog_info.gpl_compatible",
|
|
||||||
14a9b6ca "bpf: add support for btf_* fields in BPF_MAP_CREATE",
|
|
||||||
27bd13d3 "bpf: add support for btf_* fields in struct bpf_map_info",
|
|
||||||
d1f90bcd "bpf: add support for *jited_ksyms and *jited_func_lens fields
|
|
||||||
in struct bpf_prog_info", and
|
|
||||||
940fe50f "bpf: add support for new twelve fields in struct bpf_prog_info".
|
|
||||||
c661605b "tests: robustify bpf-obj_get_info_by_fd test against future kernels"
|
|
||||||
|
|
||||||
* Thu Jan 23 2020 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-7
|
* Tue Apr 07 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.6-1
|
||||||
- Fix printing stack traces for early syscalls on process attach (#1790053):
|
- v5.5 -> v5.6.
|
||||||
69b2c33a "unwind-libdw: fix initialization of libdwfl cache" and
|
|
||||||
8e515c74 "tests: add strace-k-p test".
|
|
||||||
- Properly decode struct sockaddr_hci without hci_channel field.
|
|
||||||
- Update tests-m32/ioctl_evdev.c and tests-mx32/ioctl_evdev.c
|
|
||||||
in 0002-evdev-fix-decoding-of-EVIOCGBIT-0.patch.
|
|
||||||
- Update tests-m32/Makefile.in and tests-mx32/Makefile.in
|
|
||||||
in 0032-tests-check-decoding-of-successful-evdev-ioctl.patch.
|
|
||||||
|
|
||||||
* Mon Dec 02 2019 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-6
|
* Thu Feb 06 2020 Dmitry V. Levin <ldv@altlinux.org> - 5.5-1
|
||||||
- Pull upstream fix for ioctl evdev bitset decoding, fix the tests (#1747214).
|
- v5.4 -> v5.5.
|
||||||
- Include commit v4.26~65 "s390x: beautify sthyi data tail prints" (#1747514).
|
|
||||||
- Include upstream patches that fix issues reported by covscan (#1747526):
|
|
||||||
91281fec "v4l2: avoid shifting left a signed number by 31 bit",
|
|
||||||
522ad3a0 "syscall.c: avoid infinite loop in subcalls parsing",
|
|
||||||
9446038e "kvm: avoid bogus vcpu_info assignment in vcpu_register", and
|
|
||||||
2b64854e "xlat: use unsgined type for mount_flags fallback values".
|
|
||||||
|
|
||||||
* Fri Jun 14 2019 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-5
|
* Thu Nov 28 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.4-1
|
||||||
- Use SPDX abbreviations for licenses.
|
- v5.3 -> v5.4.
|
||||||
|
|
||||||
* Wed Jun 12 2019 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-4
|
* Wed Sep 25 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.3-1
|
||||||
- Sync up thread handling unfairness fix with the upstream version.
|
- v5.2 -> v5.3.
|
||||||
- Fix "xlat_idx: Unexpected xlat value 0 at index ..." messages (#1660759).
|
|
||||||
- Remove "ptrace(SYSCALL): No such process" messages (#1662936).
|
|
||||||
- Wire up rseq and kexec_file_load on aarch64 (#1676045).
|
|
||||||
|
|
||||||
* Mon Dec 17 2018 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-3
|
* Fri Jul 12 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.2-1
|
||||||
- Add current version of the thread handling unfairness fix.
|
- v5.1 -> v5.2.
|
||||||
|
|
||||||
* Mon Sep 03 2018 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-2
|
* Wed May 22 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.1-1
|
||||||
- Add transition for strace32 package pn those architectures that
|
- v5.0 -> v5.1.
|
||||||
provided it in RHEL 7 (ppc64 and s390x).
|
|
||||||
|
|
||||||
* Tue Aug 14 2018 Eugene Syromiatnikov <esyr@redhat.com> - 4.24-1
|
* Tue Mar 19 2019 Dmitry V. Levin <ldv@altlinux.org> - 5.0-1
|
||||||
- Rebase to v4.24.
|
- v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318,
|
||||||
|
#1610774, #1662936, #1676045).
|
||||||
|
|
||||||
* Sun Aug 05 2018 Eugene Syromiatnikov <esyr@redhat.com> - 4.23-4
|
* Wed Dec 26 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.26-1
|
||||||
- Fix tests build with fresh glibc that now provides struct statx in sys/stat.h.
|
- v4.25 -> v4.26.
|
||||||
- Resolves #1611749.
|
|
||||||
|
|
||||||
* Thu Jul 19 2018 Eugene Syromiatnikov <esyr@redhat.com> - 4.23-3
|
* Tue Oct 30 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.25-1
|
||||||
- Wire up io_pgetevents and rseq on hppa, microblaze, mips, powerpc, and s390.
|
- v4.24 -> v4.25.
|
||||||
|
|
||||||
* Sat Jun 16 2018 Eugene Syromiatnikov <esyr@redhat.com> - 4.23-2
|
* Tue Aug 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.24-1
|
||||||
- Increase test timeout duration.
|
- v4.23 -> v4.24.
|
||||||
|
|
||||||
* Thu Jun 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.23-1
|
* Thu Jun 14 2018 Dmitry V. Levin <ldv@altlinux.org> - 4.23-1
|
||||||
- v4.22 -> v4.23.
|
- v4.22 -> v4.23.
|
||||||
|
Loading…
Reference in New Issue
Block a user