From 32164be71e507287c6cad53759320d0dabe3afa7 Mon Sep 17 00:00:00 2001 From: eabdullin Date: Wed, 14 May 2025 19:31:01 +0000 Subject: [PATCH] import UBI strace-6.12-1.el10 --- .gitignore | 2 +- .strace.metadata | 1 - ...remnants-of-unnecessary-idx-usage-in.patch | 58 - ...ips-whitespace-and-phrasing-cleanups.patch | 56 - ...by-one-error-in-strauss-array-access.patch | 48 - ...d-offs-sanity-check-to-print_clock_t.patch | 62 - ...context-of-Unix-socket-s-sun_path-fi.patch | 882 ------------ ...o-not-print-deleted-as-part-of-the-p.patch | 374 ------ ...pected-SELinux-context-check-for-unl.patch | 209 --- ...s-bpf-fix-sloppy-low-FD-number-usage.patch | 70 - ...se-uninitialized-parts-of-struct-ptr.patch | 102 -- SOURCES/0184-startup_tcb-add-a-comment.patch | 37 - ...her-test-of-restart_syscall-decoding.patch | 129 -- ...rkaround-net-yy-inet-for-new-kernels.patch | 108 -- ...at-secontext_mismatch-failures-on-se.patch | 530 -------- ...cno.c-use-NT_S390_SYSTEM_CALL-if-gpr.patch | 76 -- ...tl-improve-PR_SVE_-SG-ET_VL-decoding.patch | 89 -- ...fix-prctl-PR_SVE_GET_VL-return-expec.patch | 130 -- ...01-limit-qual_fault-scope-on-aarch64.patch | 59 - SPECS/strace.spec | 1180 ----------------- sources | 1 + strace.spec | 823 ++++++++++++ 22 files changed, 825 insertions(+), 4201 deletions(-) delete mode 100644 .strace.metadata delete mode 100644 SOURCES/0175-src-xlat-remove-remnants-of-unnecessary-idx-usage-in.patch delete mode 100644 SOURCES/0176-strauss-tips-whitespace-and-phrasing-cleanups.patch delete mode 100644 SOURCES/0177-strauss-fix-off-by-one-error-in-strauss-array-access.patch delete mode 100644 SOURCES/0178-util-add-offs-sanity-check-to-print_clock_t.patch delete mode 100644 SOURCES/0179-secontext-print-context-of-Unix-socket-s-sun_path-fi.patch delete mode 100644 SOURCES/0180-pathtrace-util-do-not-print-deleted-as-part-of-the-p.patch delete mode 100644 SOURCES/0181-secontext-fix-expected-SELinux-context-check-for-unl.patch delete mode 100644 SOURCES/0182-tests-bpf-fix-sloppy-low-FD-number-usage.patch delete mode 100644 SOURCES/0183-syscall-do-not-use-uninitialized-parts-of-struct-ptr.patch delete mode 100644 SOURCES/0184-startup_tcb-add-a-comment.patch delete mode 100644 SOURCES/0185-tests-add-another-test-of-restart_syscall-decoding.patch delete mode 100644 SOURCES/0186-tests-workaround-net-yy-inet-for-new-kernels.patch delete mode 100644 SOURCES/0187-tests-avoid-linkat-secontext_mismatch-failures-on-se.patch delete mode 100644 SOURCES/0188-linux-s390-get_scno.c-use-NT_S390_SYSTEM_CALL-if-gpr.patch delete mode 100644 SOURCES/0191-prctl-improve-PR_SVE_-SG-ET_VL-decoding.patch delete mode 100644 SOURCES/0192-tests-prctl-sve-fix-prctl-PR_SVE_GET_VL-return-expec.patch delete mode 100644 SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch delete mode 100644 SPECS/strace.spec create mode 100644 sources create mode 100644 strace.spec diff --git a/.gitignore b/.gitignore index 8711380..1fe14a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/strace-5.18.tar.xz +strace-6.12.tar.xz diff --git a/.strace.metadata b/.strace.metadata deleted file mode 100644 index 276bae2..0000000 --- a/.strace.metadata +++ /dev/null @@ -1 +0,0 @@ -e038ea9fc29366ce6119cde27d8cf16ac554a353 SOURCES/strace-5.18.tar.xz diff --git a/SOURCES/0175-src-xlat-remove-remnants-of-unnecessary-idx-usage-in.patch b/SOURCES/0175-src-xlat-remove-remnants-of-unnecessary-idx-usage-in.patch deleted file mode 100644 index a393a8e..0000000 --- a/SOURCES/0175-src-xlat-remove-remnants-of-unnecessary-idx-usage-in.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 2bf069698a384ff2bc62d2a10544d49d766b4d7f Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Mon, 27 Jun 2022 18:00:17 +0200 -Subject: [PATCH] src/xlat: remove remnants of unnecessary idx usage in xlookup - -As there is no idx saving between calls anymore, there's no need to use -(and update) idx in the XT_SORTED case. Reported by clang as a dead store: - - Error: CLANG_WARNING: - strace-5.18/src/xlat.c:84:4: warning[deadcode.DeadStores]: Value stored to 'idx' is never read - -* src/xlat.c (xlookup): Remove idx declaration; declare idx inside -of the for loop in the XT_NORMAL case; do not offset x->data and x->size -by offs in the XT_SORTED case and do not update idx upon successful -lookup. - -Complements: v5.15~164 "xlat: no longer interpret NULL xlat as continuation" ---- - src/xlat.c | 10 +++------- - 1 file changed, 3 insertions(+), 7 deletions(-) - -Index: strace-5.18/src/xlat.c -=================================================================== ---- strace-5.18.orig/src/xlat.c 2022-07-12 17:11:52.660927011 +0200 -+++ strace-5.18/src/xlat.c 2022-07-12 17:16:18.116794139 +0200 -@@ -61,7 +61,6 @@ - const char * - xlookup(const struct xlat *x, const uint64_t val) - { -- size_t idx = 0; - const struct xlat_data *e; - - if (!x || !x->data) -@@ -69,21 +68,18 @@ - - switch (x->type) { - case XT_NORMAL: -- for (; idx < x->size; idx++) -+ for (size_t idx = 0; idx < x->size; idx++) - if (x->data[idx].val == val) - return x->data[idx].str; - break; - - case XT_SORTED: - e = bsearch((const void *) &val, -- x->data + idx, -- x->size - idx, -+ x->data, x->size, - sizeof(x->data[0]), - xlat_bsearch_compare); -- if (e) { -- idx = e - x->data; -+ if (e) - return e->str; -- } - break; - - case XT_INDEXED: diff --git a/SOURCES/0176-strauss-tips-whitespace-and-phrasing-cleanups.patch b/SOURCES/0176-strauss-tips-whitespace-and-phrasing-cleanups.patch deleted file mode 100644 index 1c132f9..0000000 --- a/SOURCES/0176-strauss-tips-whitespace-and-phrasing-cleanups.patch +++ /dev/null @@ -1,56 +0,0 @@ -From e604d7bfd18cf5f29e6723091cc1db2945c918c9 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Tue, 28 Jun 2022 16:46:53 +0200 -Subject: [PATCH] strauss: tips whitespace and phrasing cleanups - -* src/strauss.c (tips_tricks_tweaks): Fix some whitespace and phrasing -issues. ---- - src/strauss.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) - -Index: strace-5.18/src/strauss.c -=================================================================== ---- strace-5.18.orig/src/strauss.c 2022-07-12 17:17:08.712197019 +0200 -+++ strace-5.18/src/strauss.c 2022-07-12 17:17:20.685055717 +0200 -@@ -128,8 +128,8 @@ - { "strace is about as old as the Linux kernel.", - "It has been originally written for SunOS", - "by Paul Kranenburg in 1991. The support", -- "for all OSes except Linux has been dropped", -- "since 2012, though, in strace 4.7." }, -+ "for all OSes except Linux was dropped" -+ "in 2012, though, in strace 4.7." }, - { "strace is able to decode netlink messages.", - "It does so automatically for I/O performed", - "on netlink sockets. Try it yourself:", "", -@@ -187,7 +187,7 @@ - "want to try --seccomp-bpf option, maybe you", - "will feel better." }, - { "-v is a shorthand for -e abbrev=none and not", -- " for -e verbose=all. It is idiosyncratic,", -+ "for -e verbose=all. It is idiosyncratic,", - "but it is the historic behaviour." }, - { "strace uses netlink for printing", - "protocol-specific information about socket", -@@ -254,7 +254,7 @@ - "by invoking it with the following options:", "", - " strace -DDDqqq -enone --signal=none" }, - { "Historically, supplying -o option to strace", -- "led to silencing of messages about tracee", -+ "leads to silencing of messages about tracee", - "attach/detach and personality changes.", - "It can be now overridden with --quiet=none", - "option." }, -@@ -285,8 +285,9 @@ - "will trace all syscalls related to accessing", - "and modifying process's user/group IDs", - "and capability sets. Other pre-defined", -- "syscall classes include %clock, %desc,%file,", -- "%ipc,%memory, %net,%process, and %signal." }, -+ "syscall classes include %clock, %desc," -+ "%file, %ipc, %memory, %net, %process," -+ "and %signal." }, - { "Trying to figure out communication between", - "tracees inside a different PID namespace", - "(in so-called \"containers\", for example)?", diff --git a/SOURCES/0177-strauss-fix-off-by-one-error-in-strauss-array-access.patch b/SOURCES/0177-strauss-fix-off-by-one-error-in-strauss-array-access.patch deleted file mode 100644 index 3faa9a4..0000000 --- a/SOURCES/0177-strauss-fix-off-by-one-error-in-strauss-array-access.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 968789d5426442ac43b96eabd65f3e5c0c141e62 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Tue, 28 Jun 2022 16:47:56 +0200 -Subject: [PATCH] strauss: fix off-by-one error in strauss array access - -It has to be limited with strauss_lines - 1, not strauss_lines. -Reported by covscan: - - Error: OVERRUN (CWE-119): - strace-5.18/src/strauss.c:380: cond_at_least: Checking "4UL + i < 37UL" - implies that "i" is at least 33 on the false branch. - strace-5.18/src/strauss.c:380: overrun-local: Overrunning array "strauss" - of 37 8-byte elements at element index 37 (byte offset 303) using index - "(4UL + i < 37UL) ? 4UL + i : 37UL" (which evaluates to 37). - -* src/strauss.c (print_totd): Limit strauss array accesses to -strauss_lines - 1 instead of strauss_lines. ---- - src/strauss.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/src/strauss.c b/src/strauss.c -index 98af183..b22ab6a 100644 ---- a/src/strauss.c -+++ b/src/strauss.c -@@ -373,16 +373,16 @@ print_totd(void) - tip_left[MIN(i + 1, ARRAY_SIZE(tip_left) - 1)], - w, w, tips_tricks_tweaks[id][i] ?: "", - tip_right[MIN(i + 1, ARRAY_SIZE(tip_right) - 1)], -- strauss[MIN(3 + i, strauss_lines)]); -+ strauss[MIN(3 + i, strauss_lines - 1)]); - } - fprintf(stderr, "%s%s\n", -- tip_bottom, strauss[MIN(3 + i, strauss_lines)]); -+ tip_bottom, strauss[MIN(3 + i, strauss_lines - 1)]); - do { - fprintf(stderr, "%*s%*s%*s%s\n", - (int) strlen(tip_left[0]), "", - w, "", - (int) strlen(tip_right[0]), "", -- strauss[MIN(4 + i, strauss_lines)]); -+ strauss[MIN(4 + i, strauss_lines - 1)]); - } while ((show_tips == TIPS_FULL) && (4 + ++i < strauss_lines)); - - printed = true; --- -2.1.4 - diff --git a/SOURCES/0178-util-add-offs-sanity-check-to-print_clock_t.patch b/SOURCES/0178-util-add-offs-sanity-check-to-print_clock_t.patch deleted file mode 100644 index 1924ea1..0000000 --- a/SOURCES/0178-util-add-offs-sanity-check-to-print_clock_t.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 6d3e97e83a7d61cbb2f5109efb4b519383a55712 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Tue, 28 Jun 2022 16:55:49 +0200 -Subject: [PATCH] util: add offs sanity check to print_clock_t - -While it is not strictly needed right now, the code that uses -the calculated offs value lacks any checks for possible buf overruns, -which is not defensive enough, so let's add them. Reported by covscan: - - Error: OVERRUN (CWE-119): - strace-5.18/src/util.c:248: assignment: Assigning: - "offs" = "ilog10(val / clk_tck)". The value of "offs" is now between - 16 and 31 (inclusive). - strace-5.18/src/util.c:249: overrun-local: Overrunning array of 30 bytes - at byte offset 31 by dereferencing pointer "buf + offs". [Note: The source - code implementation of the function has been overridden by a builtin model.] - - Error: OVERRUN (CWE-119): - strace-5.18/src/util.c:248: assignment: Assigning: - "offs" = "ilog10(val / clk_tck)". The value of "offs" is now between - 16 and 31 (inclusive). - strace-5.18/src/util.c:253: overrun-buffer-arg: Overrunning array "buf" - of 30 bytes by passing it to a function which accesses it at byte offset - 32 using argument "offs + 2UL" (which evaluates to 33). [Note: The source - code implementation of the function has been overridden by a builtin model.] - - Error: OVERRUN (CWE-119): - strace-5.18/src/util.c:248: assignment: Assigning: - "offs" = "ilog10(val / clk_tck)". The value of "offs" is now between - 16 and 31 (inclusive). - strace-5.18/src/util.c:254: overrun-local: Overrunning array "buf" - of 30 bytes at byte offset 32 using index "offs + 1UL" (which evaluates - to 32). - -* src/util.c (print_clock_t): Add check that offs is small enough -for it and "offs + 2" not to overrun buf. ---- - src/util.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/src/util.c b/src/util.c -index 5f87acb..93aa7b3 100644 ---- a/src/util.c -+++ b/src/util.c -@@ -246,6 +246,14 @@ print_clock_t(uint64_t val) - */ - char buf[sizeof(uint64_t) * 3 + sizeof("0.0 s")]; - size_t offs = ilog10(val / clk_tck); -+ /* -+ * This check is mostly to appease covscan, which thinks -+ * that offs can go as high as 31 (it cannot), but since -+ * there is no proper sanity checks against offs overrunning -+ * buf down the code, it may as well be here. -+ */ -+ if (offs > (sizeof(buf) - sizeof("0.0 s"))) -+ return; - int ret = snprintf(buf + offs, sizeof(buf) - offs, "%.*f s", - frac_width, - (double) (val % clk_tck) / clk_tck); --- -2.1.4 - diff --git a/SOURCES/0179-secontext-print-context-of-Unix-socket-s-sun_path-fi.patch b/SOURCES/0179-secontext-print-context-of-Unix-socket-s-sun_path-fi.patch deleted file mode 100644 index 1bf7cb7..0000000 --- a/SOURCES/0179-secontext-print-context-of-Unix-socket-s-sun_path-fi.patch +++ /dev/null @@ -1,882 +0,0 @@ -From 960e78f208b4f6d48962bbc9cad45588cc8c90ad Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Renaud=20M=C3=A9trich?= -Date: Tue, 21 Jun 2022 08:43:00 +0200 -Subject: [PATCH] secontext: print context of Unix socket's sun_path field -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Renaud Métrich - -* src/sockaddr.c: Include "secontext.h". -(print_sockaddr_data_un): Print the SELinux context of sun_path field -using selinux_printfilecon. -* NEWS: Mention this change. -* tests/secontext.c (raw_secontext_full_fd, get_secontext_field_fd, -raw_secontext_short_fd, secontext_full_fd, secontext_short_fd): New -functions. -* tests/secontext.h (secontext_full_fd, secontext_short_fd, -get_secontext_field_fd): New prototypes. -(SECONTEXT_FD): New macro. -* tests/sockname.c: Include "secontext.h". -(test_sockname_syscall): Update expected output. -* tests/gen_tests.in (getsockname--secontext, -getsockname--secontext_full, getsockname--secontext_full_mismatch, -getsockname--secontext_mismatch): New tests. - -Resolves: https://github.com/strace/strace/pull/214 ---- - NEWS | 1 + - src/sockaddr.c | 3 +++ - tests/gen_tests.in | 4 ++++ - tests/secontext.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ - tests/secontext.h | 12 ++++++++++++ - tests/sockname.c | 54 +++++++++++++++++++++++++++++++++++------------------- - 6 files changed, 104 insertions(+), 19 deletions(-) - -Index: strace-5.18/NEWS -=================================================================== ---- strace-5.18.orig/NEWS 2022-07-12 18:20:18.495470531 +0200 -+++ strace-5.18/NEWS 2022-07-12 18:20:44.531163262 +0200 -@@ -5,6 +5,7 @@ - * Added an interface of raising des Strausses awareness. - * Added --tips option to print strace tips, tricks, and tweaks - at the end of the tracing session. -+ * Implemented printing of Unix socket sun_path field's SELinux context. - * Enhanced decoding of bpf and io_uring_register syscalls. - * Implemented decoding of COUNTER_*, RTC_PARAM_GET, and RTC_PARAM_SET ioctl - commands. -Index: strace-5.18/src/sockaddr.c -=================================================================== ---- strace-5.18.orig/src/sockaddr.c 2022-07-12 18:17:36.745379483 +0200 -+++ strace-5.18/src/sockaddr.c 2022-07-12 18:20:18.495470531 +0200 -@@ -63,6 +63,8 @@ - #include "xlat/mctp_addrs.h" - #include "xlat/mctp_nets.h" - -+#include "secontext.h" -+ - #define SIZEOF_SA_FAMILY sizeof_field(struct sockaddr, sa_family) - - struct sockaddr_rxrpc { -@@ -115,6 +117,7 @@ - if (sa_un->sun_path[0]) { - print_quoted_string(sa_un->sun_path, path_len + 1, - QUOTE_0_TERMINATED); -+ selinux_printfilecon(tcp, sa_un->sun_path); - } else { - tprints("@"); - print_quoted_string(sa_un->sun_path + 1, path_len - 1, 0); -Index: strace-5.18/tests/gen_tests.in -=================================================================== ---- strace-5.18.orig/tests/gen_tests.in 2022-07-12 18:17:36.746379471 +0200 -+++ strace-5.18/tests/gen_tests.in 2022-07-12 18:20:18.496470519 +0200 -@@ -225,6 +225,10 @@ - getsid -a10 - getsid--pidns-translation test_pidns -e trace=getsid -a10 - getsockname -a27 -+getsockname--secontext -a27 --secontext -e trace=getsockname -+getsockname--secontext_full -a27 --secontext=full -e trace=getsockname -+getsockname--secontext_full_mismatch -a27 --secontext=full,mismatch -e trace=getsockname -+getsockname--secontext_mismatch -a27 --secontext=mismatch -e trace=getsockname - gettid -a9 - getuid-creds +getuid.test - getuid32 +getuid.test -Index: strace-5.18/tests/secontext.c -=================================================================== ---- strace-5.18.orig/tests/secontext.c 2022-07-12 18:17:36.747379459 +0200 -+++ strace-5.18/tests/secontext.c 2022-07-12 18:20:18.496470519 +0200 -@@ -141,6 +141,21 @@ - return full_secontext; - } - -+static char * -+raw_secontext_full_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *full_secontext = NULL; -+ char *secontext; -+ -+ if (fgetfilecon(fd, &secontext) >= 0) { -+ full_secontext = strip_trailing_newlines(xstrdup(secontext)); -+ freecon(secontext); -+ } -+ errno = saved_errno; -+ return full_secontext; -+} -+ - char * - get_secontext_field_file(const char *file, enum secontext_field field) - { -@@ -151,6 +166,16 @@ - return type; - } - -+char * -+get_secontext_field_fd(int fd, enum secontext_field field) -+{ -+ char *ctx = raw_secontext_full_fd(fd); -+ char *type = get_secontext_field(ctx, field); -+ free(ctx); -+ -+ return type; -+} -+ - static char * - raw_secontext_short_file(const char *filename) - { -@@ -158,6 +183,12 @@ - } - - static char * -+raw_secontext_short_fd(int fd) -+{ -+ return get_secontext_field_fd(fd, SECONTEXT_TYPE); -+} -+ -+static char * - raw_secontext_full_pid(pid_t pid) - { - int saved_errno = errno; -@@ -205,6 +236,15 @@ - } - - char * -+secontext_full_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *context = raw_secontext_full_fd(fd); -+ errno = saved_errno; -+ return FORMAT_SPACE_BEFORE(context); -+} -+ -+char * - secontext_full_pid(pid_t pid) - { - return FORMAT_SPACE_AFTER(raw_secontext_full_pid(pid)); -@@ -228,6 +268,15 @@ - errno = saved_errno; - return FORMAT_SPACE_BEFORE(context); - } -+ -+char * -+secontext_short_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *context = raw_secontext_short_fd(fd); -+ errno = saved_errno; -+ return FORMAT_SPACE_BEFORE(context); -+} - - char * - secontext_short_pid(pid_t pid) -Index: strace-5.18/tests/secontext.h -=================================================================== ---- strace-5.18.orig/tests/secontext.h 2022-07-12 18:17:36.747379459 +0200 -+++ strace-5.18/tests/secontext.h 2022-07-12 18:20:18.496470519 +0200 -@@ -9,9 +9,11 @@ - #include "xmalloc.h" - #include - -+char *secontext_full_fd(int) ATTRIBUTE_MALLOC; - char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; - char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; - -+char *secontext_short_fd(int) ATTRIBUTE_MALLOC; - char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; - char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; - -@@ -30,6 +32,7 @@ - */ - 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); -@@ -44,6 +47,7 @@ - # else - # define SECONTEXT_FILE(filename) secontext_full_file(filename, false) - # endif -+# define SECONTEXT_FD(fd) secontext_full_fd(fd) - # define SECONTEXT_PID(pid) secontext_full_pid(pid) - - # else -@@ -53,6 +57,7 @@ - # else - # define SECONTEXT_FILE(filename) secontext_short_file(filename, false) - # endif -+# define SECONTEXT_FD(fd) secontext_short_fd(fd) - # define SECONTEXT_PID(pid) secontext_short_pid(pid) - - # endif -@@ -65,6 +70,12 @@ - return NULL; - } - static inline char * -+get_secontext_field_fd(int fd, enum secontext_field field) -+{ -+ return NULL; -+} -+ -+static inline char * - get_secontext_field_file(const char *file, enum secontext_field field) - { - return NULL; -@@ -81,6 +92,7 @@ - { - } - -+# define SECONTEXT_FD(fd) xstrdup("") - # define SECONTEXT_FILE(filename) xstrdup("") - # define SECONTEXT_PID(pid) xstrdup("") - -Index: strace-5.18/tests/sockname.c -=================================================================== ---- strace-5.18.orig/tests/sockname.c 2022-07-12 18:17:36.748379448 +0200 -+++ strace-5.18/tests/sockname.c 2022-07-12 18:20:18.496470519 +0200 -@@ -18,6 +18,8 @@ - #include - #include - -+#include "secontext.h" -+ - #ifndef TEST_SYSCALL_NAME - # error TEST_SYSCALL_NAME must be defined - #endif -@@ -59,14 +61,19 @@ - *plen = sizeof(struct sockaddr_un); - struct sockaddr_un *addr = tail_alloc(*plen); - -+ char *my_secontext = SECONTEXT_PID_MY(); -+ char *fd_secontext = SECONTEXT_FD(fd); -+ - PREPARE_TEST_SYSCALL_INVOCATION; - int rc = TEST_SYSCALL_NAME(fd PREFIX_S_ARGS, (void *) addr, - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%s\"%s}" - ", [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, addr->sun_path, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), - (int) sizeof(struct sockaddr_un), (int) *plen, SUFFIX_STR, rc); - - memset(addr, 0, sizeof(*addr)); -@@ -75,28 +82,34 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%s\"%s}" - ", [%d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, addr->sun_path, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), - (int) *plen, SUFFIX_STR, rc); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, 0 SUFFIX_ARGS); -- printf("%s(%d%s, %p, NULL%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, SUFFIX_STR, -- sprintrc(rc)); -+ printf("%s%s(%d%s%s, %p, NULL%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, -+ addr, SUFFIX_STR, sprintrc(rc)); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_S_ARGS, 0, 0 SUFFIX_ARGS); -- printf("%s(%d%s, NULL, NULL%s) = %s\n", -- TEST_SYSCALL_STR, fd, rc == -1 ? PREFIX_F_STR : PREFIX_S_STR, -+ printf("%s%s(%d%s%s, NULL, NULL%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, -+ rc == -1 ? PREFIX_F_STR : PREFIX_S_STR, - SUFFIX_STR, sprintrc(rc)); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, - plen + 1 SUFFIX_ARGS); -- printf("%s(%d%s, %p, %p%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, -+ printf("%s%s(%d%s%s, %p, %p%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, addr, - plen + 1, SUFFIX_STR, sprintrc(rc)); - - const size_t offsetof_sun_path = offsetof(struct sockaddr_un, sun_path); -@@ -108,8 +121,9 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX}, [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX}, [%d => %d]%s) = %d\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, - (int) offsetof_sun_path, (int) *plen, SUFFIX_STR, rc); - - ++addr; -@@ -121,17 +135,19 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%.*s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%.*s\"%s}" - ", [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, - (int) (sizeof(struct sockaddr) - offsetof_sun_path), -- addr->sun_path, (int) sizeof(struct sockaddr), -- (int) *plen, SUFFIX_STR, rc); -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), -+ (int) sizeof(struct sockaddr), (int) *plen, SUFFIX_STR, rc); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, - plen SUFFIX_ARGS); -- printf("%s(%d%s, %p, [%d]%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, -+ printf("%s%s(%d%s%s, %p, [%d]%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, addr, - *plen, SUFFIX_STR, sprintrc(rc)); - } -Index: strace-5.18/tests-m32/secontext.c -=================================================================== ---- strace-5.18.orig/tests-m32/secontext.c 2022-07-12 18:17:36.747379459 +0200 -+++ strace-5.18/tests-m32/secontext.c 2022-07-12 18:20:18.496470519 +0200 -@@ -141,6 +141,21 @@ - return full_secontext; - } - -+static char * -+raw_secontext_full_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *full_secontext = NULL; -+ char *secontext; -+ -+ if (fgetfilecon(fd, &secontext) >= 0) { -+ full_secontext = strip_trailing_newlines(xstrdup(secontext)); -+ freecon(secontext); -+ } -+ errno = saved_errno; -+ return full_secontext; -+} -+ - char * - get_secontext_field_file(const char *file, enum secontext_field field) - { -@@ -151,6 +166,16 @@ - return type; - } - -+char * -+get_secontext_field_fd(int fd, enum secontext_field field) -+{ -+ char *ctx = raw_secontext_full_fd(fd); -+ char *type = get_secontext_field(ctx, field); -+ free(ctx); -+ -+ return type; -+} -+ - static char * - raw_secontext_short_file(const char *filename) - { -@@ -158,6 +183,12 @@ - } - - static char * -+raw_secontext_short_fd(int fd) -+{ -+ return get_secontext_field_fd(fd, SECONTEXT_TYPE); -+} -+ -+static char * - raw_secontext_full_pid(pid_t pid) - { - int saved_errno = errno; -@@ -205,6 +236,15 @@ - } - - char * -+secontext_full_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *context = raw_secontext_full_fd(fd); -+ errno = saved_errno; -+ return FORMAT_SPACE_BEFORE(context); -+} -+ -+char * - secontext_full_pid(pid_t pid) - { - return FORMAT_SPACE_AFTER(raw_secontext_full_pid(pid)); -@@ -228,6 +268,15 @@ - errno = saved_errno; - return FORMAT_SPACE_BEFORE(context); - } -+ -+char * -+secontext_short_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *context = raw_secontext_short_fd(fd); -+ errno = saved_errno; -+ return FORMAT_SPACE_BEFORE(context); -+} - - char * - secontext_short_pid(pid_t pid) -Index: strace-5.18/tests-m32/secontext.h -=================================================================== ---- strace-5.18.orig/tests-m32/secontext.h 2022-07-12 18:17:36.747379459 +0200 -+++ strace-5.18/tests-m32/secontext.h 2022-07-12 18:20:18.496470519 +0200 -@@ -9,9 +9,11 @@ - #include "xmalloc.h" - #include - -+char *secontext_full_fd(int) ATTRIBUTE_MALLOC; - char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; - char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; - -+char *secontext_short_fd(int) ATTRIBUTE_MALLOC; - char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; - char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; - -@@ -30,6 +32,7 @@ - */ - 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); -@@ -44,6 +47,7 @@ - # else - # define SECONTEXT_FILE(filename) secontext_full_file(filename, false) - # endif -+# define SECONTEXT_FD(fd) secontext_full_fd(fd) - # define SECONTEXT_PID(pid) secontext_full_pid(pid) - - # else -@@ -53,6 +57,7 @@ - # else - # define SECONTEXT_FILE(filename) secontext_short_file(filename, false) - # endif -+# define SECONTEXT_FD(fd) secontext_short_fd(fd) - # define SECONTEXT_PID(pid) secontext_short_pid(pid) - - # endif -@@ -65,6 +70,12 @@ - return NULL; - } - static inline char * -+get_secontext_field_fd(int fd, enum secontext_field field) -+{ -+ return NULL; -+} -+ -+static inline char * - get_secontext_field_file(const char *file, enum secontext_field field) - { - return NULL; -@@ -81,6 +92,7 @@ - { - } - -+# define SECONTEXT_FD(fd) xstrdup("") - # define SECONTEXT_FILE(filename) xstrdup("") - # define SECONTEXT_PID(pid) xstrdup("") - -Index: strace-5.18/tests-m32/sockname.c -=================================================================== ---- strace-5.18.orig/tests-m32/sockname.c 2022-07-12 18:17:36.748379448 +0200 -+++ strace-5.18/tests-m32/sockname.c 2022-07-12 18:20:18.496470519 +0200 -@@ -18,6 +18,8 @@ - #include - #include - -+#include "secontext.h" -+ - #ifndef TEST_SYSCALL_NAME - # error TEST_SYSCALL_NAME must be defined - #endif -@@ -59,14 +61,19 @@ - *plen = sizeof(struct sockaddr_un); - struct sockaddr_un *addr = tail_alloc(*plen); - -+ char *my_secontext = SECONTEXT_PID_MY(); -+ char *fd_secontext = SECONTEXT_FD(fd); -+ - PREPARE_TEST_SYSCALL_INVOCATION; - int rc = TEST_SYSCALL_NAME(fd PREFIX_S_ARGS, (void *) addr, - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%s\"%s}" - ", [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, addr->sun_path, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), - (int) sizeof(struct sockaddr_un), (int) *plen, SUFFIX_STR, rc); - - memset(addr, 0, sizeof(*addr)); -@@ -75,28 +82,34 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%s\"%s}" - ", [%d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, addr->sun_path, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), - (int) *plen, SUFFIX_STR, rc); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, 0 SUFFIX_ARGS); -- printf("%s(%d%s, %p, NULL%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, SUFFIX_STR, -- sprintrc(rc)); -+ printf("%s%s(%d%s%s, %p, NULL%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, -+ addr, SUFFIX_STR, sprintrc(rc)); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_S_ARGS, 0, 0 SUFFIX_ARGS); -- printf("%s(%d%s, NULL, NULL%s) = %s\n", -- TEST_SYSCALL_STR, fd, rc == -1 ? PREFIX_F_STR : PREFIX_S_STR, -+ printf("%s%s(%d%s%s, NULL, NULL%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, -+ rc == -1 ? PREFIX_F_STR : PREFIX_S_STR, - SUFFIX_STR, sprintrc(rc)); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, - plen + 1 SUFFIX_ARGS); -- printf("%s(%d%s, %p, %p%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, -+ printf("%s%s(%d%s%s, %p, %p%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, addr, - plen + 1, SUFFIX_STR, sprintrc(rc)); - - const size_t offsetof_sun_path = offsetof(struct sockaddr_un, sun_path); -@@ -108,8 +121,9 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX}, [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX}, [%d => %d]%s) = %d\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, - (int) offsetof_sun_path, (int) *plen, SUFFIX_STR, rc); - - ++addr; -@@ -121,17 +135,19 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%.*s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%.*s\"%s}" - ", [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, - (int) (sizeof(struct sockaddr) - offsetof_sun_path), -- addr->sun_path, (int) sizeof(struct sockaddr), -- (int) *plen, SUFFIX_STR, rc); -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), -+ (int) sizeof(struct sockaddr), (int) *plen, SUFFIX_STR, rc); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, - plen SUFFIX_ARGS); -- printf("%s(%d%s, %p, [%d]%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, -+ printf("%s%s(%d%s%s, %p, [%d]%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, addr, - *plen, SUFFIX_STR, sprintrc(rc)); - } -Index: strace-5.18/tests-mx32/secontext.c -=================================================================== ---- strace-5.18.orig/tests-mx32/secontext.c 2022-07-12 18:17:36.747379459 +0200 -+++ strace-5.18/tests-mx32/secontext.c 2022-07-12 18:20:18.496470519 +0200 -@@ -141,6 +141,21 @@ - return full_secontext; - } - -+static char * -+raw_secontext_full_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *full_secontext = NULL; -+ char *secontext; -+ -+ if (fgetfilecon(fd, &secontext) >= 0) { -+ full_secontext = strip_trailing_newlines(xstrdup(secontext)); -+ freecon(secontext); -+ } -+ errno = saved_errno; -+ return full_secontext; -+} -+ - char * - get_secontext_field_file(const char *file, enum secontext_field field) - { -@@ -151,6 +166,16 @@ - return type; - } - -+char * -+get_secontext_field_fd(int fd, enum secontext_field field) -+{ -+ char *ctx = raw_secontext_full_fd(fd); -+ char *type = get_secontext_field(ctx, field); -+ free(ctx); -+ -+ return type; -+} -+ - static char * - raw_secontext_short_file(const char *filename) - { -@@ -158,6 +183,12 @@ - } - - static char * -+raw_secontext_short_fd(int fd) -+{ -+ return get_secontext_field_fd(fd, SECONTEXT_TYPE); -+} -+ -+static char * - raw_secontext_full_pid(pid_t pid) - { - int saved_errno = errno; -@@ -205,6 +236,15 @@ - } - - char * -+secontext_full_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *context = raw_secontext_full_fd(fd); -+ errno = saved_errno; -+ return FORMAT_SPACE_BEFORE(context); -+} -+ -+char * - secontext_full_pid(pid_t pid) - { - return FORMAT_SPACE_AFTER(raw_secontext_full_pid(pid)); -@@ -228,6 +268,15 @@ - errno = saved_errno; - return FORMAT_SPACE_BEFORE(context); - } -+ -+char * -+secontext_short_fd(int fd) -+{ -+ int saved_errno = errno; -+ char *context = raw_secontext_short_fd(fd); -+ errno = saved_errno; -+ return FORMAT_SPACE_BEFORE(context); -+} - - char * - secontext_short_pid(pid_t pid) -Index: strace-5.18/tests-mx32/secontext.h -=================================================================== ---- strace-5.18.orig/tests-mx32/secontext.h 2022-07-12 18:17:36.747379459 +0200 -+++ strace-5.18/tests-mx32/secontext.h 2022-07-12 18:20:18.496470519 +0200 -@@ -9,9 +9,11 @@ - #include "xmalloc.h" - #include - -+char *secontext_full_fd(int) ATTRIBUTE_MALLOC; - char *secontext_full_file(const char *, bool) ATTRIBUTE_MALLOC; - char *secontext_full_pid(pid_t) ATTRIBUTE_MALLOC; - -+char *secontext_short_fd(int) ATTRIBUTE_MALLOC; - char *secontext_short_file(const char *, bool) ATTRIBUTE_MALLOC; - char *secontext_short_pid(pid_t) ATTRIBUTE_MALLOC; - -@@ -30,6 +32,7 @@ - */ - 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); -@@ -44,6 +47,7 @@ - # else - # define SECONTEXT_FILE(filename) secontext_full_file(filename, false) - # endif -+# define SECONTEXT_FD(fd) secontext_full_fd(fd) - # define SECONTEXT_PID(pid) secontext_full_pid(pid) - - # else -@@ -53,6 +57,7 @@ - # else - # define SECONTEXT_FILE(filename) secontext_short_file(filename, false) - # endif -+# define SECONTEXT_FD(fd) secontext_short_fd(fd) - # define SECONTEXT_PID(pid) secontext_short_pid(pid) - - # endif -@@ -65,6 +70,12 @@ - return NULL; - } - static inline char * -+get_secontext_field_fd(int fd, enum secontext_field field) -+{ -+ return NULL; -+} -+ -+static inline char * - get_secontext_field_file(const char *file, enum secontext_field field) - { - return NULL; -@@ -81,6 +92,7 @@ - { - } - -+# define SECONTEXT_FD(fd) xstrdup("") - # define SECONTEXT_FILE(filename) xstrdup("") - # define SECONTEXT_PID(pid) xstrdup("") - -Index: strace-5.18/tests-mx32/sockname.c -=================================================================== ---- strace-5.18.orig/tests-mx32/sockname.c 2022-07-12 18:17:36.748379448 +0200 -+++ strace-5.18/tests-mx32/sockname.c 2022-07-12 18:20:18.496470519 +0200 -@@ -18,6 +18,8 @@ - #include - #include - -+#include "secontext.h" -+ - #ifndef TEST_SYSCALL_NAME - # error TEST_SYSCALL_NAME must be defined - #endif -@@ -59,14 +61,19 @@ - *plen = sizeof(struct sockaddr_un); - struct sockaddr_un *addr = tail_alloc(*plen); - -+ char *my_secontext = SECONTEXT_PID_MY(); -+ char *fd_secontext = SECONTEXT_FD(fd); -+ - PREPARE_TEST_SYSCALL_INVOCATION; - int rc = TEST_SYSCALL_NAME(fd PREFIX_S_ARGS, (void *) addr, - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%s\"%s}" - ", [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, addr->sun_path, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), - (int) sizeof(struct sockaddr_un), (int) *plen, SUFFIX_STR, rc); - - memset(addr, 0, sizeof(*addr)); -@@ -75,28 +82,34 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%s\"%s}" - ", [%d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, addr->sun_path, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), - (int) *plen, SUFFIX_STR, rc); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, 0 SUFFIX_ARGS); -- printf("%s(%d%s, %p, NULL%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, SUFFIX_STR, -- sprintrc(rc)); -+ printf("%s%s(%d%s%s, %p, NULL%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, -+ addr, SUFFIX_STR, sprintrc(rc)); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_S_ARGS, 0, 0 SUFFIX_ARGS); -- printf("%s(%d%s, NULL, NULL%s) = %s\n", -- TEST_SYSCALL_STR, fd, rc == -1 ? PREFIX_F_STR : PREFIX_S_STR, -+ printf("%s%s(%d%s%s, NULL, NULL%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, -+ rc == -1 ? PREFIX_F_STR : PREFIX_S_STR, - SUFFIX_STR, sprintrc(rc)); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, - plen + 1 SUFFIX_ARGS); -- printf("%s(%d%s, %p, %p%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, -+ printf("%s%s(%d%s%s, %p, %p%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, addr, - plen + 1, SUFFIX_STR, sprintrc(rc)); - - const size_t offsetof_sun_path = offsetof(struct sockaddr_un, sun_path); -@@ -108,8 +121,9 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX}, [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX}, [%d => %d]%s) = %d\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, - (int) offsetof_sun_path, (int) *plen, SUFFIX_STR, rc); - - ++addr; -@@ -121,17 +135,19 @@ - plen SUFFIX_ARGS); - if (rc < 0) - perror_msg_and_skip(TEST_SYSCALL_STR); -- printf("%s(%d%s, {sa_family=AF_UNIX, sun_path=\"%.*s\"}" -+ printf("%s%s(%d%s%s, {sa_family=AF_UNIX, sun_path=\"%.*s\"%s}" - ", [%d => %d]%s) = %d\n", -- TEST_SYSCALL_STR, fd, PREFIX_S_STR, -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_S_STR, - (int) (sizeof(struct sockaddr) - offsetof_sun_path), -- addr->sun_path, (int) sizeof(struct sockaddr), -- (int) *plen, SUFFIX_STR, rc); -+ addr->sun_path, SECONTEXT_FILE(addr->sun_path), -+ (int) sizeof(struct sockaddr), (int) *plen, SUFFIX_STR, rc); - - PREPARE_TEST_SYSCALL_INVOCATION; - rc = TEST_SYSCALL_NAME(fd PREFIX_F_ARGS, (void *) addr, - plen SUFFIX_ARGS); -- printf("%s(%d%s, %p, [%d]%s) = %s\n", -- TEST_SYSCALL_STR, fd, PREFIX_F_STR, addr, -+ printf("%s%s(%d%s%s, %p, [%d]%s) = %s\n", -+ my_secontext, -+ TEST_SYSCALL_STR, fd, fd_secontext, PREFIX_F_STR, addr, - *plen, SUFFIX_STR, sprintrc(rc)); - } diff --git a/SOURCES/0180-pathtrace-util-do-not-print-deleted-as-part-of-the-p.patch b/SOURCES/0180-pathtrace-util-do-not-print-deleted-as-part-of-the-p.patch deleted file mode 100644 index c4c57da..0000000 --- a/SOURCES/0180-pathtrace-util-do-not-print-deleted-as-part-of-the-p.patch +++ /dev/null @@ -1,374 +0,0 @@ -From 676979fa9cc7920e5e4d547814f9c0edb597fa0d Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Thu, 30 Jun 2022 16:01:05 +0200 -Subject: [PATCH] pathtrace, util: do not print " (deleted)" as part of the - path - -In order to allow to discern the unlinked paths from the paths that -do indeed end with " (deleted)". - -* src/defs.h (getfdpath_pid): Add deleted parameter. -(getfdpath): Pass NULL as deleted parameter to getfdpath_pid. -* src/largefile_wrappers.h (lstat_file): New macro. -* src/pathtrace.c: Include , , , -and "largefile_wrappers.h". -(getfdpath_pid): Add deleted parameter, check if path ends with -" (deleted)", and if it is, try to figure out if it is a part -of the path by comparing device/inode numbers of the file procfs -link resolves into and the file pointed by the path read; strip -" (deleted)"; set deleted (if it is non-NULL) to true if the fd -is turned out to be deleted and to false otherwise. -* src/util.c (print_quoted_string_in_angle_brackets): Add deleted -parameter, print "(deleted)" after the closing angle bracket if it is -non-NULL. -(printfd_pid): Add deleted local variable, pass it to getfdpath_pid -and print_quoted_string_in_angle_brackets calls. -* tests/fchmod.c: Add checks for a file with " (deleted)" in the path, -update expected output. -* NEWS: Mention the change. ---- - NEWS | 5 +++++ - src/defs.h | 5 +++-- - src/largefile_wrappers.h | 2 ++ - src/pathtrace.c | 48 +++++++++++++++++++++++++++++++++++++++++++++--- - src/util.c | 10 +++++++--- - tests/fchmod.c | 47 +++++++++++++++++++++++++++++++++++++++++++---- - 6 files changed, 105 insertions(+), 12 deletions(-) - -Index: strace-5.18/NEWS -=================================================================== ---- strace-5.18.orig/NEWS 2022-07-13 12:52:48.219784860 +0200 -+++ strace-5.18/NEWS 2022-07-13 12:52:48.451782122 +0200 -@@ -1,6 +1,11 @@ - Noteworthy changes in release 5.18 (2022-06-18) - =============================================== - -+* Changes in behaviour -+ * The "(deleted)" marker for unlinked paths of file descriptors is now printed -+ outside angle brackets; the matching of unlinked paths of file descriptors -+ no longer includes the " (deleted)" part into consideration. -+ - * Improvements - * Added an interface of raising des Strausses awareness. - * Added --tips option to print strace tips, tricks, and tweaks -Index: strace-5.18/src/defs.h -=================================================================== ---- strace-5.18.orig/src/defs.h 2022-07-13 12:52:29.405006910 +0200 -+++ strace-5.18/src/defs.h 2022-07-13 12:52:54.532710356 +0200 -@@ -785,12 +785,13 @@ - return pathtrace_match_set(tcp, &global_path_set); - } - --extern int getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize); -+extern int getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize, -+ bool *deleted); - - static inline int - getfdpath(struct tcb *tcp, int fd, char *buf, unsigned bufsize) - { -- return getfdpath_pid(tcp->pid, fd, buf, bufsize); -+ return getfdpath_pid(tcp->pid, fd, buf, bufsize, NULL); - } - - extern unsigned long getfdinode(struct tcb *, int); -Index: strace-5.18/src/largefile_wrappers.h -=================================================================== ---- strace-5.18.orig/src/largefile_wrappers.h 2022-07-13 12:52:29.405006910 +0200 -+++ strace-5.18/src/largefile_wrappers.h 2022-07-13 12:52:48.451782122 +0200 -@@ -31,6 +31,7 @@ - # endif - # define fstat_fd fstat64 - # define strace_stat_t struct stat64 -+# define lstat_file lstat64 - # define stat_file stat64 - # define struct_dirent struct dirent64 - # define read_dir readdir64 -@@ -42,6 +43,7 @@ - # define fcntl_fd fcntl - # define fstat_fd fstat - # define strace_stat_t struct stat -+# define lstat_file lstat - # define stat_file stat - # define struct_dirent struct dirent - # define read_dir readdir -Index: strace-5.18/src/pathtrace.c -=================================================================== ---- strace-5.18.orig/src/pathtrace.c 2022-07-13 12:52:29.405006910 +0200 -+++ strace-5.18/src/pathtrace.c 2022-07-13 12:52:54.532710356 +0200 -@@ -10,7 +10,11 @@ - #include "defs.h" - #include - #include -+#include -+#include -+#include - -+#include "largefile_wrappers.h" - #include "number_set.h" - #include "sen.h" - #include "xstring.h" -@@ -77,7 +81,7 @@ - * Get path associated with fd of a process with pid. - */ - int --getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize) -+getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize, bool *deleted) - { - char linkpath[sizeof("/proc/%u/fd/%u") + 2 * sizeof(int)*3]; - ssize_t n; -@@ -91,12 +95,50 @@ - - xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd); - n = readlink(linkpath, buf, bufsize - 1); -+ if (n < 0) -+ goto end; -+ - /* - * NB: if buf is too small, readlink doesn't fail, - * it returns truncated result (IOW: n == bufsize - 1). - */ -- if (n >= 0) -- buf[n] = '\0'; -+ buf[n] = '\0'; -+ if (deleted) -+ *deleted = false; -+ -+ /* -+ * Try to figure out if the kernel has appended " (deleted)" -+ * to the end of a potentially unlinked path and set deleted -+ * if it is the case. -+ */ -+ static const char del_sfx[] = " (deleted)"; -+ if ((size_t) n <= sizeof(del_sfx)) -+ goto end; -+ -+ char *del = buf + n + 1 - sizeof(del_sfx); -+ -+ if (memcmp(del, del_sfx, sizeof(del_sfx))) -+ goto end; -+ -+ strace_stat_t st_link; -+ strace_stat_t st_path; -+ int rc = stat_file(linkpath, &st_link); -+ -+ if (rc) -+ goto end; -+ -+ rc = lstat_file(buf, &st_path); -+ -+ if (rc || -+ (st_link.st_ino != st_path.st_ino) || -+ (st_link.st_dev != st_path.st_dev)) { -+ *del = '\0'; -+ n = del - buf + 1; -+ if (deleted) -+ *deleted = true; -+ } -+ -+end: - return n; - } - -Index: strace-5.18/src/util.c -=================================================================== ---- strace-5.18.orig/src/util.c 2022-07-13 12:52:47.989787575 +0200 -+++ strace-5.18/src/util.c 2022-07-13 12:52:48.452782111 +0200 -@@ -735,12 +735,15 @@ - } - - static void --print_quoted_string_in_angle_brackets(const char *str) -+print_quoted_string_in_angle_brackets(const char *str, const bool deleted) - { - tprints("<"); - print_quoted_string_ex(str, strlen(str), - QUOTE_OMIT_LEADING_TRAILING_QUOTES, "<>"); - tprints(">"); -+ -+ if (deleted) -+ tprints("(deleted)"); - } - - void -@@ -749,8 +752,9 @@ - PRINT_VAL_D(fd); - - char path[PATH_MAX + 1]; -+ bool deleted; - if (pid > 0 && !number_set_array_is_empty(decode_fd_set, 0) -- && getfdpath_pid(pid, fd, path, sizeof(path)) >= 0) { -+ && getfdpath_pid(pid, fd, path, sizeof(path), &deleted) >= 0) { - if (is_number_in_set(DECODE_FD_SOCKET, decode_fd_set) && - printsocket(tcp, fd, path)) - goto printed; -@@ -761,7 +765,7 @@ - printpidfd(pid, fd, path)) - goto printed; - if (is_number_in_set(DECODE_FD_PATH, decode_fd_set)) -- print_quoted_string_in_angle_brackets(path); -+ print_quoted_string_in_angle_brackets(path, deleted); - printed: ; - } - -Index: strace-5.18/tests/fchmod.c -=================================================================== ---- strace-5.18.orig/tests/fchmod.c 2022-07-13 12:52:29.405006910 +0200 -+++ strace-5.18/tests/fchmod.c 2022-07-13 12:52:48.452782111 +0200 -@@ -35,10 +35,17 @@ - (void) unlink(sample); - int fd = open(sample, O_CREAT|O_RDONLY, 0400); - if (fd == -1) -- perror_msg_and_fail("open"); -+ perror_msg_and_fail("open(\"%s\")", sample); -+ -+ static const char sample_del[] = "fchmod_sample_file (deleted)"; -+ (void) unlink(sample_del); -+ int fd_del = open(sample_del, O_CREAT|O_RDONLY, 0400); -+ if (fd_del == -1) -+ perror_msg_and_fail("open(\"%s\")", sample); - - # ifdef YFLAG - char *sample_realpath = get_fd_path(fd); -+ char *sample_del_realpath = get_fd_path(fd_del); - # endif - - const char *sample_secontext = SECONTEXT_FILE(sample); -@@ -56,12 +63,27 @@ - sample_secontext, - sprintrc(rc)); - -+ const char *sample_del_secontext = SECONTEXT_FILE(sample_del); -+ rc = syscall(__NR_fchmod, fd_del, 0600); -+# ifdef YFLAG -+ printf("%s%s(%d<%s>%s, 0600) = %s\n", -+# else -+ printf("%s%s(%d%s, 0600) = %s\n", -+# endif -+ my_secontext, "fchmod", -+ fd_del, -+# ifdef YFLAG -+ sample_del_realpath, -+# endif -+ sample_del_secontext, -+ sprintrc(rc)); -+ - if (unlink(sample)) -- perror_msg_and_fail("unlink"); -+ perror_msg_and_fail("unlink(\"%s\")", sample); - - rc = syscall(__NR_fchmod, fd, 051); - # ifdef YFLAG -- printf("%s%s(%d<%s (deleted)>%s, 051) = %s\n", -+ printf("%s%s(%d<%s>(deleted)%s, 051) = %s\n", - # else - printf("%s%s(%d%s, 051) = %s\n", - # endif -@@ -73,9 +95,26 @@ - sample_secontext, - sprintrc(rc)); - -+ if (unlink(sample_del)) -+ perror_msg_and_fail("unlink(\"%s\")", sample_del); -+ -+ rc = syscall(__NR_fchmod, fd_del, 051); -+# ifdef YFLAG -+ printf("%s%s(%d<%s>(deleted)%s, 051) = %s\n", -+# else -+ printf("%s%s(%d%s, 051) = %s\n", -+# endif -+ my_secontext, "fchmod", -+ fd_del, -+# ifdef YFLAG -+ sample_del_realpath, -+# endif -+ sample_del_secontext, -+ sprintrc(rc)); -+ - rc = syscall(__NR_fchmod, fd, 004); - # ifdef YFLAG -- printf("%s%s(%d<%s (deleted)>%s, 004) = %s\n", -+ printf("%s%s(%d<%s>(deleted)%s, 004) = %s\n", - # else - printf("%s%s(%d%s, 004) = %s\n", - # endif -Index: strace-5.18/tests-m32/fchmod.c -=================================================================== ---- strace-5.18.orig/tests-m32/fchmod.c 2022-07-13 12:52:29.405006910 +0200 -+++ strace-5.18/tests-m32/fchmod.c 2022-07-13 12:52:48.452782111 +0200 -@@ -35,10 +35,17 @@ - (void) unlink(sample); - int fd = open(sample, O_CREAT|O_RDONLY, 0400); - if (fd == -1) -- perror_msg_and_fail("open"); -+ perror_msg_and_fail("open(\"%s\")", sample); -+ -+ static const char sample_del[] = "fchmod_sample_file (deleted)"; -+ (void) unlink(sample_del); -+ int fd_del = open(sample_del, O_CREAT|O_RDONLY, 0400); -+ if (fd_del == -1) -+ perror_msg_and_fail("open(\"%s\")", sample); - - # ifdef YFLAG - char *sample_realpath = get_fd_path(fd); -+ char *sample_del_realpath = get_fd_path(fd_del); - # endif - - const char *sample_secontext = SECONTEXT_FILE(sample); -@@ -56,12 +63,27 @@ - sample_secontext, - sprintrc(rc)); - -+ const char *sample_del_secontext = SECONTEXT_FILE(sample_del); -+ rc = syscall(__NR_fchmod, fd_del, 0600); -+# ifdef YFLAG -+ printf("%s%s(%d<%s>%s, 0600) = %s\n", -+# else -+ printf("%s%s(%d%s, 0600) = %s\n", -+# endif -+ my_secontext, "fchmod", -+ fd_del, -+# ifdef YFLAG -+ sample_del_realpath, -+# endif -+ sample_del_secontext, -+ sprintrc(rc)); -+ - if (unlink(sample)) -- perror_msg_and_fail("unlink"); -+ perror_msg_and_fail("unlink(\"%s\")", sample); - - rc = syscall(__NR_fchmod, fd, 051); - # ifdef YFLAG -- printf("%s%s(%d<%s (deleted)>%s, 051) = %s\n", -+ printf("%s%s(%d<%s>(deleted)%s, 051) = %s\n", - # else - printf("%s%s(%d%s, 051) = %s\n", - # endif -@@ -73,9 +95,26 @@ - sample_secontext, - sprintrc(rc)); - -+ if (unlink(sample_del)) -+ perror_msg_and_fail("unlink(\"%s\")", sample_del); -+ -+ rc = syscall(__NR_fchmod, fd_del, 051); -+# ifdef YFLAG -+ printf("%s%s(%d<%s>(deleted)%s, 051) = %s\n", -+# else -+ printf("%s%s(%d%s, 051) = %s\n", -+# endif -+ my_secontext, "fchmod", -+ fd_del, -+# ifdef YFLAG -+ sample_del_realpath, -+# endif -+ sample_del_secontext, -+ sprintrc(rc)); -+ - rc = syscall(__NR_fchmod, fd, 004); - # ifdef YFLAG -- printf("%s%s(%d<%s (deleted)>%s, 004) = %s\n", -+ printf("%s%s(%d<%s>(deleted)%s, 004) = %s\n", - # else - printf("%s%s(%d%s, 004) = %s\n", - # endif diff --git a/SOURCES/0181-secontext-fix-expected-SELinux-context-check-for-unl.patch b/SOURCES/0181-secontext-fix-expected-SELinux-context-check-for-unl.patch deleted file mode 100644 index f0f74d8..0000000 --- a/SOURCES/0181-secontext-fix-expected-SELinux-context-check-for-unl.patch +++ /dev/null @@ -1,209 +0,0 @@ -From 3f0e5340b651da98251a58cc7923525d69f96032 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Fri, 1 Jul 2022 10:45:48 +0200 -Subject: [PATCH] secontext: fix expected SELinux context check for unlinked - FDs -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -selinux_getfdcon open-coded a part of getfdpath_pid since it tries -to do the same job, figure out a path associated with an FD, for slightly -different purpose: to get the expected SELinux context for it. As the previous -commit shows, it's a bit more complicated in cases when the path ends -with the " (deleted)" string, which is also used for designated unlinked paths -in procfs. Otherwise, it may manifest in test failures such as this: - - [unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023] fchmod(4 [unconfined_u:object_r:admin_home_t:s0!!system_u:object_r:admin_home_t:s0], 0600) = 0 - -[unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023] fchmod(4 [unconfined_u:object_r:admin_home_t:s0!!system_u:object_r:admin_home_t:s0], 051) = 0 - -[unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023] fchmod(4 [unconfined_u:object_r:admin_home_t:s0!!system_u:object_r:admin_home_t:s0], 004) = 0 - +[unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023] fchmod(4 [unconfined_u:object_r:admin_home_t:s0], 051) = 0 - +[unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023] fchmod(4 [unconfined_u:object_r:admin_home_t:s0], 004) = 0 - +++ exited with 0 +++ - + fail_ '../../src/strace -a15 -y --secontext=full,mismatch -e trace=fchmod ../fchmod-y--secontext_full_mismatch output mismatch' - + warn_ 'fchmod-y--secontext_full_mismatch.gen.test: failed test: ../../src/strace -a15 -y --secontext=full,mismatch -e trace=fchmod ../fchmod-y--secontext_full_mismatch output mismatch' - + printf '%s\n' 'fchmod-y--secontext_full_mismatch.gen.test: failed test: ../../src/strace -a15 -y --secontext=full,mismatch -e trace=fchmod ../fchmod-y--secontext_full_mismatch output mismatch' - fchmod-y--secontext_full_mismatch.gen.test: failed test: ../../src/strace -a15 -y --secontext=full,mismatch -e trace=fchmod ../fchmod-y--secontext_full_mismatch output mismatch - + exit 1 - FAIL fchmod-y--secontext_full_mismatch.gen.test (exit status: 1) - -that happens due to the fact that the get_expected_filecontext() call -is made against the path with the " (deleted)" part, which is wrong (it -is more wrong than shown above when a file with the path that ends with -" (deleted)" exists). Moreover, it would be incorrect to call stat() -on that path. - -Let's factor out the common part of the code and simply call it -from selinux_getfdcon, then use the st_mode from the procfs link. - -* src/defs.h (get_proc_pid_fd_path): New declaration. -* src/pathtrace.c (get)proc_pid_fd_path): New function, part -of getfdpath_pid that performs link resolution and processing -of the result. -(getfdpath_pid): Call get_proc_pid_fd_path after PID resolution. -* src/secontext.c (get_expected_filecontext): Add mode parameter, use -it in selabel_lookup call instead of retrieveing file mode using stat() -if it is not -1. -(selinux_getfdcon): Call get_proc_pid_fd_path instead -of open-coding path resolution code, call stat() on the procfs link -and pass the retrieved st_mode to the get_expected_filecontext call. -(selinux_getfilecon): Pass -1 as mode in the get_expected_filecontext -call. - -Reported-by: Václav Kadlčík -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2087693 ---- - src/defs.h | 15 +++++++++++++++ - src/pathtrace.c | 26 ++++++++++++++++++-------- - src/secontext.c | 35 +++++++++++++++++++++-------------- - 3 files changed, 54 insertions(+), 22 deletions(-) - -Index: strace-5.18/src/defs.h -=================================================================== ---- strace-5.18.orig/src/defs.h 2022-07-12 18:22:01.563254140 +0200 -+++ strace-5.18/src/defs.h 2022-07-12 18:22:06.202199392 +0200 -@@ -785,6 +785,21 @@ - return pathtrace_match_set(tcp, &global_path_set); - } - -+/** -+ * Resolves a path for a fd procfs PID proc_pid (the one got from -+ * get_proc_pid()). -+ * -+ * @param proc_pid PID number in /proc, obtained with get_proc_pid(). -+ * @param fd FD to resolve path for. -+ * @param buf Buffer to store the resolved path in. -+ * @param bufsize The size of buf. -+ * @param deleted If non-NULL, set to true if the path associated with the FD -+ * seems to have been unlinked and to false otherwise. -+ * @return Number of bytes written including terminating '\0'. -+ */ -+extern int get_proc_pid_fd_path(int proc_pid, int fd, char *buf, -+ unsigned bufsize, bool *deleted); -+ - extern int getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize, - bool *deleted); - -Index: strace-5.18/src/pathtrace.c -=================================================================== ---- strace-5.18.orig/src/pathtrace.c 2022-07-12 18:22:01.532254506 +0200 -+++ strace-5.18/src/pathtrace.c 2022-07-12 18:22:06.202199392 +0200 -@@ -77,11 +77,9 @@ - set->paths_selected[set->num_selected++] = path; - } - --/* -- * Get path associated with fd of a process with pid. -- */ - int --getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize, bool *deleted) -+get_proc_pid_fd_path(int proc_pid, int fd, char *buf, unsigned bufsize, -+ bool *deleted) - { - char linkpath[sizeof("/proc/%u/fd/%u") + 2 * sizeof(int)*3]; - ssize_t n; -@@ -89,10 +87,6 @@ - if (fd < 0) - return -1; - -- int proc_pid = get_proc_pid(pid); -- if (!proc_pid) -- return -1; -- - xsprintf(linkpath, "/proc/%u/fd/%u", proc_pid, fd); - n = readlink(linkpath, buf, bufsize - 1); - if (n < 0) -@@ -143,6 +137,22 @@ - } - - /* -+ * Get path associated with fd of a process with pid. -+ */ -+int -+getfdpath_pid(pid_t pid, int fd, char *buf, unsigned bufsize, bool *deleted) -+{ -+ if (fd < 0) -+ return -1; -+ -+ int proc_pid = get_proc_pid(pid); -+ if (!proc_pid) -+ return -1; -+ -+ return get_proc_pid_fd_path(proc_pid, fd, buf, bufsize, deleted); -+} -+ -+/* - * Add a path to the set we're tracing. Also add the canonicalized - * version of the path. Specifying NULL will delete all paths. - */ -Index: strace-5.18/src/secontext.c -=================================================================== ---- strace-5.18.orig/src/secontext.c 2022-07-12 18:22:01.564254128 +0200 -+++ strace-5.18/src/secontext.c 2022-07-12 18:22:06.203199380 +0200 -@@ -62,7 +62,7 @@ - } - - static int --get_expected_filecontext(const char *path, char **secontext) -+get_expected_filecontext(const char *path, char **secontext, int mode) - { - static struct selabel_handle *hdl; - -@@ -80,12 +80,7 @@ - } - } - -- strace_stat_t stb; -- if (stat_file(path, &stb) < 0) { -- return -1; -- } -- -- return selabel_lookup(hdl, secontext, path, stb.st_mode); -+ return selabel_lookup(hdl, secontext, path, mode); - } - - /* -@@ -130,16 +125,22 @@ - - /* - * We need to resolve the path, because selabel_lookup() doesn't -- * resolve anything. Using readlink() is sufficient here. -+ * resolve anything. - */ -+ char buf[PATH_MAX + 1]; -+ ssize_t n = get_proc_pid_fd_path(proc_pid, fd, buf, sizeof(buf), NULL); -+ if ((size_t) n >= (sizeof(buf) - 1)) -+ return 0; - -- char buf[PATH_MAX]; -- ssize_t n = readlink(linkpath, buf, sizeof(buf)); -- if ((size_t) n >= sizeof(buf)) -+ /* -+ * We retrieve stat() here since the path the procfs link resolves into -+ * may be reused by a different file with different context. -+ */ -+ strace_stat_t st; -+ if (stat_file(linkpath, &st)) - return 0; -- buf[n] = '\0'; - -- get_expected_filecontext(buf, expected); -+ get_expected_filecontext(buf, expected, st.st_mode); - - return 0; - } -@@ -190,7 +191,13 @@ - if (!resolved) - return 0; - -- get_expected_filecontext(resolved, expected); -+ strace_stat_t st; -+ if (stat_file(resolved, &st) < 0) -+ goto out; -+ -+ get_expected_filecontext(resolved, expected, st.st_mode); -+ -+out: - free(resolved); - - return 0; diff --git a/SOURCES/0182-tests-bpf-fix-sloppy-low-FD-number-usage.patch b/SOURCES/0182-tests-bpf-fix-sloppy-low-FD-number-usage.patch deleted file mode 100644 index c10e7a2..0000000 --- a/SOURCES/0182-tests-bpf-fix-sloppy-low-FD-number-usage.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 5338636cd9ae7f53ed73f1a7909db03189ea2ff3 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -Date: Mon, 4 Jul 2022 12:29:22 +0200 -Subject: [PATCH] tests/bpf: fix sloppy low FD number usage -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -FD 42 can already be opened, so close it. Otherwise, it may lead -to the following test failure: - - -bpf(BPF_LINK_CREATE, {link_create={prog_fd=0, target_fd=0, attach_type=BPF_TRACE_ITER, flags=0, iter_info=[{map={map_fd=0}}, {map={map_fd=42}}, {map={map_fd=314159265}}, {map={map_fd=-1159983635}}, {map={map_fd=-1}}], iter_info_len=5}}, 28) = 841540765612359407 (INJECTED) - +bpf(BPF_LINK_CREATE, {link_create={prog_fd=0, target_fd=0, attach_type=BPF_TRACE_ITER, flags=0, iter_info=[{map={map_fd=0}}, {map={map_fd=42}}, {map={map_fd=314159265}}, {map={map_fd=-1159983635}}, {map={map_fd=-1}}], iter_info_len=5}}, 28) = 841540765612359407 (INJECTED) - bpf(BPF_LINK_CREATE, 0x3ff95574fe5, 28) = 841540765612359407 (INJECTED) - -bpf(BPF_LINK_CREATE, {link_create={prog_fd=0, target_fd=0, attach_type=BPF_TRACE_ITER, flags=0, iter_info=[{map={map_fd=0}}, {map={map_fd=42}}, {map={map_fd=314159265}}, {map={map_fd=-1159983635}}, {map={map_fd=-1}}, ... /* 0x3ff9555d000 */], iter_info_len=6}}, 28) = 841540765612359407 (INJECTED) - +bpf(BPF_LINK_CREATE, {link_create={prog_fd=0, target_fd=0, attach_type=BPF_TRACE_ITER, flags=0, iter_info=[{map={map_fd=0}}, {map={map_fd=42}}, {map={map_fd=314159265}}, {map={map_fd=-1159983635}}, {map={map_fd=-1}}, ... /* 0x3ff9555d000 */], iter_info_len=6}}, 28) = 841540765612359407 (INJECTED) - [...] - FAIL bpf-success-long-y.test (exit status: 1) - -* tests/bpf.c (init_BPF_LINK_CREATE_attr7): Close iter_info_data[1] fd. - -Fixes: v5.18~18 "bpf: improve bpf(BPF_LINK_CREATE) decoding" -Reported-by: Lenka Špačková -Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2103137 ---- - tests/bpf.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/tests/bpf.c b/tests/bpf.c -index 82d870e..6c1ffd4 100644 ---- a/tests/bpf.c -+++ b/tests/bpf.c -@@ -1557,6 +1557,8 @@ init_BPF_LINK_CREATE_attr7(struct bpf_attr_check *check, size_t idx) - { - struct BPF_LINK_CREATE_struct *attr = &check->data.BPF_LINK_CREATE_data; - -+ close(iter_info_data[1]); -+ - if (!iter_info_data_p) { - iter_info_data_p = tail_memdup(iter_info_data, - sizeof(iter_info_data)); -diff --git a/tests-m32/bpf.c b/tests-m32/bpf.c -index 82d870e..6c1ffd4 100644 ---- a/tests-m32/bpf.c -+++ b/tests-m32/bpf.c -@@ -1557,6 +1557,8 @@ init_BPF_LINK_CREATE_attr7(struct bpf_attr_check *check, size_t idx) - { - struct BPF_LINK_CREATE_struct *attr = &check->data.BPF_LINK_CREATE_data; - -+ close(iter_info_data[1]); -+ - if (!iter_info_data_p) { - iter_info_data_p = tail_memdup(iter_info_data, - sizeof(iter_info_data)); -diff --git a/tests-mx32/bpf.c b/tests-mx32/bpf.c -index 82d870e..6c1ffd4 100644 ---- a/tests-mx32/bpf.c -+++ b/tests-mx32/bpf.c -@@ -1557,6 +1557,8 @@ init_BPF_LINK_CREATE_attr7(struct bpf_attr_check *check, size_t idx) - { - struct BPF_LINK_CREATE_struct *attr = &check->data.BPF_LINK_CREATE_data; - -+ close(iter_info_data[1]); -+ - if (!iter_info_data_p) { - iter_info_data_p = tail_memdup(iter_info_data, - sizeof(iter_info_data)); --- -2.1.4 - diff --git a/SOURCES/0183-syscall-do-not-use-uninitialized-parts-of-struct-ptr.patch b/SOURCES/0183-syscall-do-not-use-uninitialized-parts-of-struct-ptr.patch deleted file mode 100644 index d38d55a..0000000 --- a/SOURCES/0183-syscall-do-not-use-uninitialized-parts-of-struct-ptr.patch +++ /dev/null @@ -1,102 +0,0 @@ -From c7e0ea6d712eb214dafe7e9eae57661d9a427ea7 Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -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 - diff --git a/SOURCES/0184-startup_tcb-add-a-comment.patch b/SOURCES/0184-startup_tcb-add-a-comment.patch deleted file mode 100644 index 39e7757..0000000 --- a/SOURCES/0184-startup_tcb-add-a-comment.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 2048c136ba6edc4282dbc976c499e038d5b60c03 Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -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 - diff --git a/SOURCES/0185-tests-add-another-test-of-restart_syscall-decoding.patch b/SOURCES/0185-tests-add-another-test-of-restart_syscall-decoding.patch deleted file mode 100644 index 0c73f57..0000000 --- a/SOURCES/0185-tests-add-another-test-of-restart_syscall-decoding.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 3bf08cbb388a89014252bdfe5143324bdaa4dc46 Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -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 \ diff --git a/SOURCES/0186-tests-workaround-net-yy-inet-for-new-kernels.patch b/SOURCES/0186-tests-workaround-net-yy-inet-for-new-kernels.patch deleted file mode 100644 index e24b974..0000000 --- a/SOURCES/0186-tests-workaround-net-yy-inet-for-new-kernels.patch +++ /dev/null @@ -1,108 +0,0 @@ -From e9d784ecd3ef0c5af9f8c74a830e797d773d71cb Mon Sep 17 00:00:00 2001 -From: "Dmitry V. Levin" -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 - diff --git a/SOURCES/0187-tests-avoid-linkat-secontext_mismatch-failures-on-se.patch b/SOURCES/0187-tests-avoid-linkat-secontext_mismatch-failures-on-se.patch deleted file mode 100644 index 715b3e8..0000000 --- a/SOURCES/0187-tests-avoid-linkat-secontext_mismatch-failures-on-se.patch +++ /dev/null @@ -1,530 +0,0 @@ -From 660186018897b386fb05d7951aec57a81211a1a4 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -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 . -(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 ---- - 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 - - #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 - #include - - 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 - - #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 - #include - - 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 - - #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 - #include - - 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 - diff --git a/SOURCES/0188-linux-s390-get_scno.c-use-NT_S390_SYSTEM_CALL-if-gpr.patch b/SOURCES/0188-linux-s390-get_scno.c-use-NT_S390_SYSTEM_CALL-if-gpr.patch deleted file mode 100644 index eb4220a..0000000 --- a/SOURCES/0188-linux-s390-get_scno.c-use-NT_S390_SYSTEM_CALL-if-gpr.patch +++ /dev/null @@ -1,76 +0,0 @@ -From d08dfdebb381427cbd8565994868926ba9bc4b40 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -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 - diff --git a/SOURCES/0191-prctl-improve-PR_SVE_-SG-ET_VL-decoding.patch b/SOURCES/0191-prctl-improve-PR_SVE_-SG-ET_VL-decoding.patch deleted file mode 100644 index 6f522a8..0000000 --- a/SOURCES/0191-prctl-improve-PR_SVE_-SG-ET_VL-decoding.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 1663bf8582b7187d04225105a62bbab9ebbb8109 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -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)): : Pass false as aux -to sprint_sve_val. -(SYS_FUNC(prctl)): : 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 - diff --git a/SOURCES/0192-tests-prctl-sve-fix-prctl-PR_SVE_GET_VL-return-expec.patch b/SOURCES/0192-tests-prctl-sve-fix-prctl-PR_SVE_GET_VL-return-expec.patch deleted file mode 100644 index ecf3f44..0000000 --- a/SOURCES/0192-tests-prctl-sve-fix-prctl-PR_SVE_GET_VL-return-expec.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 3ed268876dd5b65263449f9aeb18a1cc2604c707 Mon Sep 17 00:00:00 2001 -From: Eugene Syromyatnikov -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 - diff --git a/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch b/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch deleted file mode 100644 index f3ece0f..0000000 --- a/SOURCES/2001-limit-qual_fault-scope-on-aarch64.patch +++ /dev/null @@ -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 \ diff --git a/SPECS/strace.spec b/SPECS/strace.spec deleted file mode 100644 index 8bf7144..0000000 --- a/SPECS/strace.spec +++ /dev/null @@ -1,1180 +0,0 @@ -Summary: Tracks and displays system calls associated with a running process -Name: strace -Version: 5.18 -Release: 2.1%{?dist} -# The test suite is GPLv2+, all the rest is LGPLv2.1+. -License: LGPL-2.1+ and GPL-2.0+ -Group: Development/Debuggers -URL: https://strace.io/ -Source: https://strace.io/files/%{version}/%{name}-%{version}.tar.xz - -BuildRequires: libacl-devel time gcc gzip make -BuildRequires: pkgconfig(bluez) -BuildRequires: elfutils-devel binutils-devel -BuildRequires: libselinux-devel - -## Reported by covscan -## v5.2-3-g7ada13f "evdev: avoid bit vector decoding on non-successful and 0 return codes" -#Patch30: 0030-evdev-avoid-bit-vector-decoding-on-non-successful-an.patch -## v5.2-4-g96194ed "evdev: fix array size calculation in decode_bitset_" -#Patch31: 0031-evdev-fix-array-size-calculation-in-decode_bitset_.patch - -### Pre-requisite for "tests: test evdev bitset decoding more thoroughly" -## v4.25~89 "tests: check decoding of successful evdev ioctl" -#Patch32: 0032-tests-check-decoding-of-successful-evdev-ioctl.patch - -## 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-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 -## 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 -## v5.13-58-g94ae5c2 "trie: use BIT* and MASK* macros" -#Patch165: 0165-trie-use-BIT-and-MASK-macros.patch -## 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 - -## v5.15~1 "print_ifindex: fix IFNAME_QUOTED_SZ definition" -#Patch167: 0167-print_ifindex-fix-IFNAME_QUOTED_SZ-definition.patch - -## v5.15~18 "m4: fix st_SELINUX check" -#Patch168: 0168-m4-fix-st_SELINUX-check.patch -## v5.16~31 "Implement displaying of expected context upon mismatch" -#Patch169: 0169-Implement-displaying-of-expected-context-upon-mismat.patch -#Patch170: 0170-tests-linkat-reset-errno-before-SELinux-context-mani.patch -#Patch171: 0171-tests-secontext-add-secontext-field-getters.patch -#Patch172: 0172-tests-linkat-provide-fallback-values-for-secontext-f.patch -#Patch173: 0173-tests-secontext-eliminate-separate-secontext_format-.patch -#Patch174: 0174-tests-linkat-reset-context-to-the-expected-one-if-a-.patch - -## https://bugzilla.redhat.com/2103068 covscan fixes -# v5.18-5-g2bf0696 "src/xlat: remove remnants of unnecessary idx usage in xlookup" -Patch175: 0175-src-xlat-remove-remnants-of-unnecessary-idx-usage-in.patch -# v5.18-7-ge604d7b "strauss: tips whitespace and phrasing cleanups" -Patch176: 0176-strauss-tips-whitespace-and-phrasing-cleanups.patch -# v5.18-8-g968789d "strauss: fix off-by-one error in strauss array access" -Patch177: 0177-strauss-fix-off-by-one-error-in-strauss-array-access.patch -# v5.18-9-g6d3e97e "util: add offs sanity check to print_clock_t" -Patch178: 0178-util-add-offs-sanity-check-to-print_clock_t.patch - -## https://bugzilla.redhat.com/2087693 -# v5.18-13-g960e78f "secontext: print context of Unix socket's sun_path field" -Patch179: 0179-secontext-print-context-of-Unix-socket-s-sun_path-fi.patch -# v5.18-18-g676979f "pathtrace, util: do not print " (deleted)" as part of the path" -Patch180: 0180-pathtrace-util-do-not-print-deleted-as-part-of-the-p.patch -# v5.18-19-g3f0e534 "secontext: fix expected SELinux context check for unlinked FDs" -Patch181: 0181-secontext-fix-expected-SELinux-context-check-for-unl.patch - -## https://bugzilla.redhat.com/2103137 -# v5.18-21-g5338636 "tests/bpf: fix sloppy low FD number usage" -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 -%{?!__make: %global __make %_bindir/make} -%{?!__install: %global __install %_bindir/install} -%{?!make_build: %global make_build %__make %{?_smp_mflags}} -%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"} - -%description -The strace program intercepts and records the system calls called and -received by a running process. Strace can print a record of each -system call, its arguments and its return value. Strace is useful for -diagnosing problems and debugging, as well as for instructional -purposes. - -Install strace if you need a tool to track the system calls made and -received by a process. - -%prep -%setup -q - -#%patch30 -p1 -#%patch31 -p1 -#%patch32 -p1 -#%patch33 -p1 -#%patch34 -p1 -#%patch35 -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 -#%patch168 -p1 -#%patch169 -p1 -#%patch170 -p1 -#%patch171 -p1 -#%patch172 -p1 -#%patch173 -p1 -#%patch174 -p1 - -%patch175 -p1 -%patch176 -p1 -%patch177 -p1 -%patch178 -p1 -%patch179 -p1 -%patch180 -p1 -%patch181 -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 - -echo -n %version-%release > .tarball-version -echo -n 2022 > .year -echo -n 2022-06-22 > doc/.strace.1.in.date -echo -n 2022-06-22 > doc/.strace-log-merge.1.in.date - -%build -echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION' -uname -a |head -1 -libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)" -$libc |head -1 -file -L /bin/sh -gcc --version |head -1 -ld --version |head -1 -kver="$(printf '%%s\n%%s\n' '#include ' 'LINUX_VERSION_CODE' | gcc -E -P -)" -printf 'kernel-headers %%s.%%s.%%s\n' $(($kver/65536)) $(($kver/256%%256)) $(($kver%%256)) -echo 'END OF BUILD ENVIRONMENT INFORMATION' - -CFLAGS=" $RPM_OPT_FLAGS $LDFLAGS " -# Removing explicit -m64 as it breaks mpers -[ "x${CFLAGS#* -m64 }" = "x${CFLAGS}" ] || CFLAGS=$(echo "$CFLAGS" | sed 's/ -m64 / /g') -export CFLAGS - -CPPFLAGS=" -isystem %{_includedir} %{optflags} " -# Removing explicit -m64 as it breaks mpers -[ "x${CPPFLAGS#* -m64 }" = "x${CPPFLAGS}" ] || CPPFLAGS=$(echo "$CPPFLAGS" | sed 's/ -m64 / /g') -export CPPFLAGS - -CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD -%configure --enable-mpers=check --with-libdw --with-libiberty -%make_build - - -%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 -for f in ChangeLog ChangeLog-CVS; do - gzip -9n < "$f" > "$f".gz & -done -wait - -%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 - -# 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' -tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log -find tests* -type f -name '*.log' -print0 | - xargs -r0 grep -H '^KERNEL BUG:' -- ||: -echo 'END OF TEST SUITE INFORMATION' - -%files -%defattr(-,root,root) -%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING LGPL-2.1-or-later NEWS README -%{_bindir}/strace -%ifarch %{strace32_arches} -%{_bindir}/strace32 -%endif -%{_bindir}/strace-log-merge -%{_mandir}/man1/* - -%changelog -* Tue Oct 29 2024 Eugene Syromiatnikov - 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 - 5.18-2 -- Fix the issues reported by covscan (#2103068). -- Fix SELinux context matching for the deleted paths (#2087693). -- Fix sloppy FD usage in the bpf test (#2103137). - -* Wed Jun 22 2022 Eugene Syromiatnikov - 5.18-1 -- Rebase to v5.18; drop upstream patches on top of 5.13 (#2084000). - -* Mon Feb 07 2022 Eugene Syromiatnikov - 5.13-4 -- Update tests-m32 and tests-mx32 with --secontext=mismatch option support - changes (#2046259). - -* Wed Jan 19 2022 Eugene Syromiatnikov - 5.13-3 -- Add --secontext=mismatch option support (#2038810). - -* Wed Jan 05 2022 Eugene Syromiatnikov - 5.13-2 -- Fix incorrect ifname printing buffer size (#2028158). - -* Wed Oct 20 2021 Eugene Syromiatnikov - 5.13-1 -- Rebase to v5.13; drop upstream patches on top of 5.7 (#2015917). -- Address some issues reported by covscan. - -* Mon Aug 09 2021 Eugene Syromiatnikov - 5.7-3 -- Add SELnux context decoding support (#1946500). - -* Mon Nov 09 2020 Eugene Syromiatnikov - 5.7-2 -- Add PID namespace translation support (#1725113). - -* Mon Nov 09 2020 Eugene Syromiatnikov - 5.7-1 -- Rebase to v5.7; drop upstream patches on top of 5.1 (#1873229). - -* Mon Aug 24 2020 Eugene Syromiatnikov - 5.1-2 -- Update io_uring(2) decoder (#1853011). -- Fix "Obsoletes:" tag on s390x (#1852960). - -* Thu Jan 30 2020 Eugene Syromiatnikov - 5.1-1 -- Rebase to strace 5.1 (#1777847). - -* Thu Jan 30 2020 Eugene Syromiatnikov - 4.24-9 -- Fix the "extra tokens at end of #ifdef directive" warning: - 579f2702 "bpf: exclude bit fields from the check". - -* Mon Jan 27 2020 Eugene Syromiatnikov - 4.24-8 -- Fix expected alignment for IPC tests (#1795251): - 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 - 4.24-7 -- Fix printing stack traces for early syscalls on process attach (#1790053): - 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 - 4.24-6 -- Pull upstream fix for ioctl evdev bitset decoding, fix the tests (#1747214). -- 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 - 4.24-5 -- Use SPDX abbreviations for licenses. - -* Wed Jun 12 2019 Eugene Syromiatnikov - 4.24-4 -- Sync up thread handling unfairness fix with the upstream version. -- 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 - 4.24-3 -- Add current version of the thread handling unfairness fix. - -* Mon Sep 03 2018 Eugene Syromiatnikov - 4.24-2 -- Add transition for strace32 package pn those architectures that - provided it in RHEL 7 (ppc64 and s390x). - -* Tue Aug 14 2018 Eugene Syromiatnikov - 4.24-1 -- Rebase to v4.24. - -* Sun Aug 05 2018 Eugene Syromiatnikov - 4.23-4 -- Fix tests build with fresh glibc that now provides struct statx in sys/stat.h. -- Resolves #1611749. - -* Thu Jul 19 2018 Eugene Syromiatnikov - 4.23-3 -- Wire up io_pgetevents and rseq on hppa, microblaze, mips, powerpc, and s390. - -* Sat Jun 16 2018 Eugene Syromiatnikov - 4.23-2 -- Increase test timeout duration. - -* Thu Jun 14 2018 Dmitry V. Levin - 4.23-1 -- v4.22 -> v4.23. -- Enabled libdw backend for -k option (#1568647). - -* Thu Apr 05 2018 Dmitry V. Levin - 4.22-1 -- v4.21 -> v4.22. - -* Tue Feb 13 2018 Dmitry V. Levin - 4.21-1 -- v4.20 -> v4.21. - -* Mon Nov 13 2017 Dmitry V. Levin - 4.20-1 -- v4.19 -> v4.20. - -* Tue Sep 05 2017 Dmitry V. Levin - 4.19-1 -- v4.18 -> v4.19. - -* Wed Jul 05 2017 Dmitry V. Levin - 4.18-1 -- v4.17 -> v4.18. - -* Wed May 24 2017 Dmitry V. Levin - 4.17-1 -- v4.16 -> v4.17. - -* Tue Feb 14 2017 Dmitry V. Levin - 4.16-1 -- v4.15 -> v4.16. - -* Wed Dec 14 2016 Dmitry V. Levin - 4.15-1 -- v4.14-100-g622af42 -> v4.15. - -* Wed Nov 16 2016 Dmitry V. Levin - 4.14.0.100.622a-1 -- v4.14 -> v4.14-100-g622af42: - + implemented syscall fault injection. - -* Tue Oct 04 2016 Dmitry V. Levin - 4.14-1 -- v4.13 -> v4.14: - + added printing of the mode argument of open and openat syscalls - when O_TMPFILE flag is set (#1377846). - -* Tue Jul 26 2016 Dmitry V. Levin - 4.13-1 -- v4.12 -> v4.13. - -* Tue May 31 2016 Dmitry V. Levin - 4.12-1 -- v4.11-163-g972018f -> v4.12. - -* Fri Feb 05 2016 Fedora Release Engineering - 4.11.0.163.9720-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Fri Jan 15 2016 Dmitry V. Levin - 4.11.0.163.9720-1 -- New upstream snapshot v4.11-163-g972018f: - + fixed decoding of syscalls unknown to the kernel on s390/s390x (#1298294). - -* Wed Dec 23 2015 Dmitry V. Levin - 4.11-2 -- Enabled experimental -k option on x86_64 (#1170296). - -* Mon Dec 21 2015 Dmitry V. Levin - 4.11-1 -- New upstream release: - + print nanoseconds along with seconds in stat family syscalls (#1251176). - -* Fri Jun 19 2015 Fedora Release Engineering - 4.10-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Mon May 11 2015 Marcin Juszkiewicz - 4.10-2 -- Backport set of upstream patches to get it buildable on AArch64 - -* Fri Mar 06 2015 Dmitry V. Levin - 4.10-1 -- New upstream release: - + enhanced ioctl decoding (#902788). - -* Mon Nov 03 2014 Lubomir Rintel - 4.9-3 -- Regenerate ioctl entries with proper kernel headers - -* Mon Aug 18 2014 Fedora Release Engineering - 4.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Fri Aug 15 2014 Dmitry V. Levin - 4.9-1 -- New upstream release: - + fixed build when and conflict (#993384); - + updated CLOCK_* constants (#1088455); - + enabled ppc64le support (#1122323); - + fixed attach to a process on ppc64le (#1129569). - -* Fri Jul 25 2014 Dan Horák - 4.8-5 -- update for ppc64 - -* Sun Jun 08 2014 Fedora Release Engineering - 4.8-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Fri Dec 6 2013 Peter Robinson 4.8-3 -- Fix FTBFS - -* Sun Aug 04 2013 Fedora Release Engineering - 4.8-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild - -* Mon Jun 03 2013 Dmitry V. Levin - 4.8-1 -- New upstream release: - + fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382); - + fixed decoding of *xattr syscalls (#885233); - + fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790); - + added aarch64 support (#969858). - -* Fri Feb 15 2013 Fedora Release Engineering - 4.7-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild - -* Sat Jul 21 2012 Fedora Release Engineering - 4.7-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed May 02 2012 Dmitry V. Levin 4.7-1 -- New upstream release. - + implemented proper handling of real SIGTRAPs (#162774). - -* Sat Jan 14 2012 Fedora Release Engineering - 4.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Mar 14 2011 Dmitry V. Levin - 4.6-1 -- New upstream release. - + fixed a corner case in waitpid handling (#663547). - -* Wed Feb 09 2011 Fedora Release Engineering - 4.5.20-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Tue Apr 13 2010 Roland McGrath - 4.5.20-1 -- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin. - + fixed potential stack buffer overflow in select decoder (#556678); - + fixed FTBFS (#539044). - -* Wed Oct 21 2009 Roland McGrath - 4.5.19-1 -- New upstream release, work mostly by Dmitry V. Levin - + exit/kill strace with traced process exitcode/signal (#105371); - + fixed build on ARM EABI (#507576); - + fixed display of 32-bit argv array on 64-bit architectures (#519480); - + fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169); - + fixed several bugs in strings decoder, including potential heap - memory corruption (#470529, #478324, #511035). - -* Thu Aug 28 2008 Roland McGrath - 4.5.18-1 -- build fix for newer kernel headers (#457291) -- fix CLONE_VFORK handling (#455078) -- Support new Linux/PPC system call subpage_prot and PROT_SAO flag. -- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN. - -* Mon Jul 21 2008 Roland McGrath - 4.5.17-1 -- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781) -- fix biarch stat64 decoding (#222275) -- fix spurious "..." in printing of environment strings (#358241) -- improve prctl decoding (#364401) -- fix hang wait on exited child with exited child (#354261) -- fix biarch fork/vfork (-f) tracing (#447475) -- fix biarch printing of negative argument kill (#430585) -- fix biarch decoding of error return values (#447587) -- fix -f tracing of CLONE_VFORK (#455078) -- fix ia64 register clobberation in -f tracing (#453438) -- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821) -- fix futex argument decoding (#448628, #448629) - -* Fri Aug 3 2007 Roland McGrath - 4.5.16-1 -- fix multithread issues (#240962, #240961, #247907) -- fix spurious SIGSTOP on early interrupt (#240986) -- fix utime for biarch (#247185) -- fix -u error message (#247170) -- better futex syscall printing (##241467) -- fix argv/envp printing with small -s settings, and for biarch -- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait, - move_pages, utimensat - -* Tue Jan 16 2007 Roland McGrath - 4.5.15-1 -- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043) -- fix -ff -o behavior (#204950, #218435, #193808, #219423) -- better quotactl printing (#118696) -- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275) -- glibc-2.5 build fixes (#209856) -- memory corruption fixes (#200621 -- fix race in child setup under -f (#180293) -- show ipc key values in hex (#198179, #192182) -- disallow -c with -ff (#187847) -- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435 -- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050 -- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633 -- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293 -- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847 - -* Mon Nov 20 2006 Jakub Jelinek - 4.5.14-4 -- Fix ia64 syscall decoding (#206768) -- Fix build with glibc-2.4.90-33 and up on all arches but ia64 -- Fix build against 2.6.18+ headers - -* Tue Aug 22 2006 Roland McGrath - 4.5.14-3 -- Fix bogus decoding of syscalls >= 300 (#201462, #202620). - -* Fri Jul 14 2006 Jesse Keating - 4.5.14-2 -- rebuild - -* Fri Feb 10 2006 Jesse Keating - 4.5.14-1.2 -- bump again for long double bug on ppc{,64} - -* Tue Feb 07 2006 Jesse Keating - 4.5.14-1.1 -- rebuilt for new gcc4.1 snapshot and glibc changes - -* Mon Jan 16 2006 Roland McGrath - 4.5.14-1 -- Fix biarch decoding of socket syscalls (#174354). -- Fix biarch -e support (#173986). -- Accept numeric syscalls in -e (#174798). -- Fix ipc syscall decoding (#164755). -- Improve msgrcv printing (#164757). -- Man page updates (#165375). -- Improve mount syscall printing (#165377). -- Correct printing of restarting syscalls (#165469). - -* Wed Aug 3 2005 Roland McGrath - 4.5.13-1 -- Fix setsockopt decoding on 64-bit (#162449). -- Fix typos in socket option name strings (#161578). -- Display more IPV6 socket options by name (#162450). -- Don't display inappropriate syscalls for -e trace=file (#159340). -- New selector type -e trace=desc for file-descriptor using calls (#159400). -- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215). -- Fix errors detaching from multithreaded process on interrupt (#161919). -- Note 4.5.12 fix for crash handling bad signal numbers (#162739). - -* Wed Jun 8 2005 Roland McGrath - 4.5.12-1 -- Fix known syscall recognition for IA32 processes on x86-64 (#158934). -- Fix bad output for ptrace on x86-64 (#159787). -- Fix potential buffer overruns (#151570, #159196). -- Make some diagnostics more consistent (#159308). -- Update PowerPC system calls. -- Better printing for Linux aio system calls. -- Don't truncate statfs64 fields to 32 bits in output (#158243). -- Cosmetic code cleanups (#159688). - -* Tue Mar 22 2005 Roland McGrath - 4.5.11-1 -- Build tweaks. -- Note 4.5.10 select fix (#151570). - -* Mon Mar 14 2005 Roland McGrath - 4.5.10-1 -- Fix select handling on nonstandard fd_set sizes. -- Don't print errors for null file name pointers. -- Fix initial execve output with -i (#143365). - -* Fri Feb 4 2005 Roland McGrath - 4.5.9-2 -- update ia64 syscall list (#146245) -- fix x86_64 syscall argument extraction for 32-bit processes (#146093) -- fix -e signal=NAME parsing (#143362) -- fix x86_64 exit_group syscall handling -- improve socket ioctl printing (#138223) -- code cleanups (#143369, #143370) -- improve mount flags printing (#141932) -- support symbolic printing of x86_64 arch_prctl parameters (#142667) -- fix potential crash in getxattr printing - -* Tue Oct 19 2004 Roland McGrath - 4.5.8-1 -- fix multithreaded exit handling (#132150, #135254) -- fix ioctl name matching (#129808) -- print RTC_* ioctl structure contents (#58606) -- grok epoll_* syscalls (#134463) -- grok new RLIMIT_* values (#133594) -- print struct cmsghdr contents for sendmsg (#131689) -- fix clock_* and timer_* argument output (#131420) - -* Tue Aug 31 2004 Roland McGrath - 4.5.7-2 -- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177) - -* Mon Jul 12 2004 Roland McGrath 4.5.6-1 -- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917) - -* Sun Jun 27 2004 Roland McGrath 4.5.5-1 -- new upstream version, fixes x86-64 biarch support (#126547) - -* Tue Jun 15 2004 Elliot Lee 4.5.4-2 -- rebuilt - -* Thu Jun 3 2004 Roland McGrath 4.5.4-0.FC1 -- rebuilt for FC1 update - -* Thu Jun 3 2004 Roland McGrath 4.5.4-1 -- new upstream version, more ioctls (#122257), minor fixes - -* Fri Apr 16 2004 Roland McGrath 4.5.3-1 -- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685) - -* Tue Mar 02 2004 Elliot Lee 4.5.2-1.1 -- rebuilt - -* Mon Mar 1 2004 Roland McGrath 4.5.2-1 -- new upstream version, sched_* calls (#116990), show core flag (#112117) - -* Fri Feb 13 2004 Elliot Lee -- rebuilt - -* Thu Nov 13 2003 Roland McGrath 4.5.1-1 -- new upstream version, more fixes (#108012, #105366, #105359, #105358) - -* Tue Sep 30 2003 Roland McGrath 4.5-3 -- revert bogus s390 fix - -* Thu Sep 25 2003 Roland McGrath 4.5-1.2.1AS -- rebuilt for 2.1AS erratum - -* Wed Sep 24 2003 Roland McGrath 4.5-2 -- rebuilt - -* Wed Sep 24 2003 Roland McGrath 4.5-1 -- new upstream version, more fixes (#101499, #104365) - -* Thu Jul 17 2003 Roland McGrath 4.4.99-2 -- rebuilt - -* Thu Jul 17 2003 Roland McGrath 4.4.99-1 -- new upstream version, groks more new system calls, PF_INET6 sockets - -* Tue Jun 10 2003 Roland McGrath 4.4.98-1 -- new upstream version, more fixes (#90754, #91085) - -* Wed Jun 04 2003 Elliot Lee -- rebuilt - -* Sun Mar 30 2003 Roland McGrath 4.4.96-1 -- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes - -* Mon Feb 24 2003 Elliot Lee 4.4.95-2 -- rebuilt - -* Mon Feb 24 2003 Roland McGrath 4.4.95-1 -- new upstream version, fixed getresuid/getresgid (#84959) - -* Wed Feb 19 2003 Roland McGrath 4.4.94-1 -- new upstream version, new option -E to set environment variables (#82392) - -* Wed Jan 22 2003 Tim Powers 4.4.93-2 -- rebuilt - -* Tue Jan 21 2003 Roland McGrath 4.4.93-1 -- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests - -* Fri Jan 10 2003 Roland McGrath 4.4.91-1 -- new upstream version, fixes -f on x86-64 - -* Fri Jan 10 2003 Roland McGrath 4.4.90-1 -- new upstream version, fixes all known bugs modulo ia64 and s390 issues - -* Fri Jan 03 2003 Florian La Roche 4.4-11 -- add further s390 patch from IBM - -* Wed Nov 27 2002 Tim Powers 4.4-10 -- remove unpackaged files from the buildroot - -* Mon Oct 07 2002 Phil Knirsch 4.4-9.1 -- Added latest s390(x) patch. - -* Fri Sep 06 2002 Karsten Hopp 4.4-9 -- preliminary x86_64 support with an ugly patch to help - debugging. Needs cleanup! - -* Mon Sep 2 2002 Jakub Jelinek 4.4-8 -- newer version of the clone fixing patch (Roland McGrath) -- aio syscalls for i386/ia64/ppc (Ben LaHaise) - -* Wed Aug 28 2002 Jakub Jelinek 4.4-7 -- fix strace -f (Roland McGrath, #68994) -- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper) - -* Fri Jun 21 2002 Jakub Jelinek 4.4-6 -- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper) -- handle modify_ldt (#66894) - -* Thu May 23 2002 Tim Powers -- automated rebuild - -* Tue Apr 16 2002 Jakub Jelinek 4.4-4 -- fix for the last patch by Jeff Law (#62591) - -* Mon Mar 4 2002 Preston Brown 4.4-3 -- integrate patch from Jeff Law to eliminate hang tracing threads - -* Sat Feb 23 2002 Florian La Roche -- minor update from debian tar-ball - -* Wed Jan 02 2002 Florian La Roche -- update to 4.4 - -* Sun Jul 22 2001 Florian La Roche -- disable s390 patches, they are already included - -* Wed Jul 18 2001 Preston Brown 4.3-1 -- new upstream version. Seems to have integrated most new syscalls -- tracing threaded programs is now functional. - -* Mon Jun 11 2001 Than Ngo -- port s390 patches from IBM - -* Wed May 16 2001 Nalin Dahyabhai -- modify new syscall patch to allocate enough heap space in setgroups32() - -* Wed Feb 14 2001 Jakub Jelinek -- #include in addition to - -* Fri Jan 26 2001 Karsten Hopp -- clean up conflicting patches. This happened only - when building on S390 - -* Fri Jan 19 2001 Bill Nottingham -- update to CVS, reintegrate ia64 support - -* Fri Dec 8 2000 Bernhard Rosenkraenzer -- Get S/390 support into the normal package - -* Sat Nov 18 2000 Florian La Roche -- added S/390 patch from IBM, adapting it to not conflict with - IA64 patch - -* Sat Aug 19 2000 Jakub Jelinek -- doh, actually apply the 2.4 syscalls patch -- make it compile with 2.4.0-test7-pre4+ headers, add - getdents64 and fcntl64 - -* Thu Aug 3 2000 Jakub Jelinek -- add a bunch of new 2.4 syscalls (#14036) - -* Wed Jul 12 2000 Prospector -- automatic rebuild -- excludearch ia64 - -* Fri Jun 2 2000 Matt Wilson -- use buildinstall for FHS - -* Wed May 24 2000 Jakub Jelinek -- make things compile on sparc -- fix sigreturn on sparc - -* Fri Mar 31 2000 Bill Nottingham -- fix stat64 misdef (#10485) - -* Tue Mar 21 2000 Michael K. Johnson -- added ia64 patch - -* Thu Feb 03 2000 Cristian Gafton -- man pages are compressed -- version 4.2 (why are we keeping all these patches around?) - -* Sat Nov 27 1999 Jeff Johnson -- update to 4.1 (with sparc socketcall patch). - -* Fri Nov 12 1999 Jakub Jelinek -- fix socketcall on sparc. - -* Thu Sep 02 1999 Cristian Gafton -- fix KERN_SECURELVL compile problem - -* Tue Aug 31 1999 Cristian Gafton -- added alpha patch from HJLu to fix the osf_sigprocmask interpretation - -* Sat Jun 12 1999 Jeff Johnson -- update to 3.99.1. - -* Wed Jun 2 1999 Jeff Johnson -- add (the other :-) jj's sparc patch. - -* Wed May 26 1999 Jeff Johnson -- upgrade to 3.99 in order to -- add new 2.2.x open flags (#2955). -- add new 2.2.x syscalls (#2866). -- strace 3.1 patches carried along for now. - -* Sun May 16 1999 Jeff Johnson -- don't rely on (broken!) rpm %%patch (#2735) - -* Tue Apr 06 1999 Preston Brown -- strip binary - -* Sun Mar 21 1999 Cristian Gafton -- auto rebuild in the new build environment (release 16) - -* Tue Feb 9 1999 Jeff Johnson -- vfork est arrive! - -* Tue Feb 9 1999 Christopher Blizzard -- Add patch to follow clone() syscalls, too. - -* Sun Jan 17 1999 Jeff Johnson -- patch to build alpha/sparc with glibc 2.1. - -* Thu Dec 03 1998 Cristian Gafton -- patch to build on ARM - -* Wed Sep 30 1998 Jeff Johnson -- fix typo (printf, not tprintf). - -* Sat Sep 19 1998 Jeff Johnson -- fix compile problem on sparc. - -* Tue Aug 18 1998 Cristian Gafton -- buildroot - -* Mon Jul 20 1998 Cristian Gafton -- added the umoven patch from James Youngman -- fixed build problems on newer glibc releases - -* Mon Jun 08 1998 Prospector System -- translations modified for de, fr, tr diff --git a/sources b/sources new file mode 100644 index 0000000..16f303e --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (strace-6.12.tar.xz) = ae28f0b6b6fdc980898f11d1903aacb5a31760a07d63bd7cbc8f9b5f337d9db6b40464d6b61a9b03ba6442b476edb78afc91348f539f7780cdd98b174c6a9a1d diff --git a/strace.spec b/strace.spec new file mode 100644 index 0000000..e24b562 --- /dev/null +++ b/strace.spec @@ -0,0 +1,823 @@ +Summary: Tracks and displays system calls associated with a running process +Name: strace +Version: 6.12 +Release: 1%{?dist} +# The test suite is GPLv2+, the bundled headers are GPLv2 with Linux syscall +# exception, all the rest is LGPLv2.1+. +%if 0%{?fedora} >= 35 || 0%{?centos} >= 9 || 0%{?rhel} >= 9 +# https://docs.fedoraproject.org/en-US/legal/license-field/#_no_effective_license_analysis +# BSD-2-Clause: +# bundled/linux/include/uapi/linux/tee.h +# BSD-3-Clause: +# bundled/linux/include/uapi/linux/quota.h +# GPL-1.0-or-later WITH Linux-syscall-note: +# bundled/linux/include/uapi/linux/if_bonding.h +# bundled/linux/include/uapi/linux/loop.h +# GPL-2.0-or-later WITH Linux-syscall-note: +# bundled/linux/include/uapi/linux/dm-ioctl.h +# bundled/linux/include/uapi/linux/hiddev.h +# bundled/linux/include/uapi/linux/if_alg.h +# bundled/linux/include/uapi/linux/if_bridge.h +# bundled/linux/include/uapi/linux/in6.h +# bundled/linux/include/uapi/linux/in.h +# bundled/linux/include/uapi/linux/keyctl.h +# bundled/linux/include/uapi/linux/mptcp.h +# bundled/linux/include/uapi/linux/ptp_clock.h +# bundled/linux/include/uapi/linux/tcp.h +# bundled/linux/include/uapi/mtd/mtd-abi.h +# bundled/linux/include/uapi/mtd/ubi-user.h +# LGPL-2.0-or-later WITH Linux-syscall-note: +# bundled/linux/include/uapi/linux/dm-ioctl.h +# LGPL-2.1-or-later WITH Linux-syscall-note: +# bundled/linux/include/uapi/linux/dqblk_xfs.h +# bundled/linux/include/uapi/linux/mqueue.h +# (GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB: +# bundled/linux/include/uapi/linux/tls.h +# bundled/linux/include/uapi/rdma/ib_user_verbs.h +# (GPL-2.0-only WITH Linux-syscall-note) OR MIT: +# bundled/linux/include/uapi/linux/io_uring.h +# (GPL-2.0-or-later WITH Linux-syscall-note) OR BSD-3-Clause: +# bundled/linux/include/uapi/linux/v4l2-common.h +# bundled/linux/include/uapi/linux/v4l2-controls.h +# bundled/linux/include/uapi/linux/videodev2.h +# GPL-2.0-only WITH Linux-syscall-note: +# bundled/linux/include/uapi/asm-generic/hugetlb_encode.h (no explicit license in the file) +# bundled/linux/include/uapi/linux/mount.h (no explicit license in the file) +# bundled/linux/include/uapi/linux/netfilter/nfnetlink_osf.h (no explicit license in the file) +# bundled/linux/include/uapi/linux/version.h (no explicit license in the file) +# bundled/linux/include/uapi/asm/hugetlb_encode.h (no explicit license in the file) +# the rest of bundled/linux +# ISC: +# bundled/linux/include/uapi/linux/nfc.h +# X11: +# build-aux/install-sh (dist only) +# LGPL-2.1-or-later: +# build-aux/copyright-year-gen +# build-aux/file-date-gen +# m4/ax_code_coverage.m4 +# m4/mpers.m4 +# m4/st_demangle.m4 +# m4/st_esyscmd_s.m4 +# m4/st_libdw.m4 +# m4/st_libunwind.m4 +# m4/st_save_restore_var.m4 +# m4/st_selinux.m4 +# m4/st_stacktrace.m4 +# m4/st_warn_cflags.m4 +# GPL-2.0-or-later: +# build-aux/ar-lib (dist only) +# build-aux/compile (dist only) +# build-aux/depcomp (dist only) +# build-aux/missing (dist only) +# build-aux/test-driver (dist only) +# GPL-3.0-or-later: +# build-aux/config.guess (dist only) +# build-aux/config.sub (dist only) +# build-aux/git-version-gen +# FSFAP: +# README-configure +# m4/ax_prog_cc_for_build.m4 +# m4/ax_valgrind_check.m4 +# FSFUL: +# configure (dist only) +# FSFULLR: +# m4/warnings.m4 +# FSFULLRWD: +# aclocal.m4 (dist only) +# Makefile.in (dist only) +# bundled/Makefile.in (dist only) +# src/Makefile.in (dist only) +# tests/Makefile.in (dist only) +# tests-m32/Makefile.in (dist only) +# tests-mx32/Makefile.in (dist only) +License: LGPL-2.1-or-later AND GPL-2.0-or-later AND GPL-3.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND (GPL-1.0-or-later WITH Linux-syscall-note) AND (GPL-2.0-or-later WITH Linux-syscall-note) AND (GPL-2.0-only WITH Linux-syscall-note) AND (LGPL-2.0-or-later WITH Linux-syscall-note) AND (LGPL-2.1-or-later WITH Linux-syscall-note) AND ((GPL-2.0-only WITH Linux-syscall-note) OR Linux-OpenIB) AND ((GPL-2.0-only WITH Linux-syscall-note) OR MIT) AND ((GPL-2.0-or-later WITH Linux-syscall-note) OR BSD-3-Clause) AND ISC AND X11 AND FSFAP AND FSFUL AND FSFULLR AND FSFULLRWD +%else +License: LGPL-2.1+ and GPL-2.0+ +%endif +# Some distros require Group tag to be present, +# some require Group tag to be absent, +# 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 + +# 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) +%endif + +# Install elfutils-devel or libdw-devel to enable strace -k option. +# Install binutils-devel to enable symbol demangling. +%if 0%{?fedora} >= 20 || 0%{?centos} >= 6 || 0%{?rhel} >= 6 +%define buildrequires_stacktrace BuildRequires: elfutils-devel binutils-devel +%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} + +# OBS compatibility +%{?!buildroot:BuildRoot: %_tmppath/buildroot-%name-%version-%release} +%define maybe_use_defattr %{?suse_version:%%defattr(-,root,root)} + +# Fallback definitions for make_build/make_install macros +%{?!__make: %global __make %_bindir/make} +%{?!__install: %global __install %_bindir/install} +%{?!make_build: %global make_build %__make %{?_smp_mflags}} +%{?!make_install: %global make_install %__make install DESTDIR="%{?buildroot}" INSTALL="%__install -p"} + +%description +The strace program intercepts and records the system calls called and +received by a running process. Strace can print a record of each +system call, its arguments and its return value. Strace is useful for +diagnosing problems and debugging, as well as for instructional +purposes. + +Install strace if you need a tool to track the system calls made and +received by a process. + +%prep +%setup -q + +chmod a+x tests/*.test + +echo -n %version-%release > .tarball-version +echo -n 2024 > .year +echo -n 2023-11-21 > doc/.strace.1.in.date +echo -n 2022-01-01 > doc/.strace-log-merge.1.in.date + +%build +echo 'BEGIN OF BUILD ENVIRONMENT INFORMATION' +uname -a |head -1 +libc="$(ldd /bin/sh |sed -n 's|^[^/]*\(/[^ ]*/libc\.so[^ ]*\).*|\1|p' |head -1)" +$libc |head -1 +file -L /bin/sh +gcc --version |head -1 +ld --version |head -1 +kver="$(printf '%%s\n%%s\n' '#include ' 'LINUX_VERSION_CODE' | gcc -E -P -)" +printf 'kernel-headers %%s.%%s.%%s\n' $((kver/65536)) $((kver/256%%256)) $((kver%%256)) +echo 'END OF BUILD ENVIRONMENT INFORMATION' + +CFLAGS_FOR_BUILD="$RPM_OPT_FLAGS"; export CFLAGS_FOR_BUILD +%configure --enable-mpers=check --enable-bundled=yes +%make_build + +%install +%make_install + +# some say uncompressed changelog files are too big +for f in ChangeLog ChangeLog-CVS; do + gzip -9n < "$f" > "$f".gz & +done +wait + +%check +width=$(echo __LONG_WIDTH__ |%__cc -E -P -) +skip_32bit=0 +%if 0%{?fedora} >= 35 || 0%{?rhel} > 9 +skip_32bit=1 +%endif + +if [ "${width}" != 32 ] || [ "${skip_32bit}" != 1 ]; then + %{buildroot}%{_bindir}/strace -V + %make_build -k check VERBOSE=1 + echo 'BEGIN OF TEST SUITE INFORMATION' + tail -n 99999 -- tests*/test-suite.log tests*/ksysent.gen.log + find tests* -type f -name '*.log' -print0 | + xargs -r0 grep -H '^KERNEL BUG:' -- ||: + echo 'END OF TEST SUITE INFORMATION' +fi + +%files +%maybe_use_defattr +%doc CREDITS ChangeLog.gz ChangeLog-CVS.gz COPYING NEWS README +%{_bindir}/strace +%{_bindir}/strace-log-merge +%{_mandir}/man1/* + +%changelog +* Thu Jan 02 2025 Eugene Syromiatnikov - 6.12-1 +- Rebase to v6.12; drop upstream patches on top of 6.7 (RHEL-62412). + +* Tue Nov 05 2024 Eugene Syromiatnikov - 6.7-6 +- Avoid failures of creat.gen test on kernels that include commit + v6.11-rc1~242^2~19 ("fs: don't block i_writecount during exec"). + +* Tue Oct 29 2024 Eugene Syromiatnikov - 6.7-5 +- Fix incorrect syscall name reporting in restart_syscall() on attach when + PTRACE_GET_SYSCALL_INFO is in use (RHEL-65108). +- Update net-yy-inet* and linkat--secontext_mismatch tests. + +* Tue Oct 29 2024 Troy Dawson - 6.7-4 +- Bump release for October 2024 mass rebuild: + Resolves: RHEL-64018 + +* Thu Aug 01 2024 Eugene Syromiatnikov - 6.7-3 +- Apply "tests: workaround net-yy-inet* for new kernels" (RHEL-45361) + +* Mon Jun 24 2024 Troy Dawson - 6.7-2 +- Bump release for June 2024 mass rebuild + +* Mon Jan 29 2024 Dmitry V. Levin - 6.7-1 +- v6.6 -> v6.7. + +* Tue Oct 31 2023 Dmitry V. Levin - 6.6-1 +- v6.5 -> v6.6 (resolves: #2243631). + +* Fri Sep 01 2023 Dmitry V. Levin - 6.5-1 +- v6.4 -> v6.5. +- Updated the SPDX license expression (by Eugene Syromyatnikov). + +* Mon Jun 26 2023 Dmitry V. Levin - 6.4-1 +- v6.3 -> v6.4. + +* Mon May 08 2023 Dmitry V. Levin - 6.3-1 +- v6.2 -> v6.3. + +* Sun Feb 26 2023 Dmitry V. Levin - 6.2-1 +- v6.1 -> v6.2. + +* Mon Dec 12 2022 Dmitry V. Levin - 6.1-1 +- v6.0 -> v6.1. + +* Sat Oct 29 2022 Dmitry V. Levin - 6.0-1 +- v5.19 -> v6.0. + +* Fri Aug 12 2022 Dmitry V. Levin - 5.19-1 +- v5.18 -> v5.19. + +* Sat Jun 18 2022 Dmitry V. Levin - 5.18-1 +- v5.17 -> v5.18. + +* Sat Mar 26 2022 Dmitry V. Levin - 5.17-1 +- v5.16 -> v5.17 (resolves: #2047030). + +* Mon Jan 10 2022 Dmitry V. Levin - 5.16-1 +- v5.15 -> v5.16. + +* Wed Dec 01 2021 Dmitry V. Levin - 5.15-1 +- v5.14 -> v5.15. + +* Thu Sep 02 2021 Dmitry V. Levin - 5.14-1 +- v5.13 -> v5.14. + +* Sun Jul 18 2021 Dmitry V. Levin - 5.13-1 +- v5.12 -> v5.13. + +* Mon Apr 26 2021 Dmitry V. Levin - 5.12-1 +- v5.11 -> v5.12. + +* Wed Feb 17 2021 Dmitry V. Levin - 5.11-1 +- v5.10 -> v5.11. + +* Mon Dec 14 2020 Dmitry V. Levin - 5.10-1 +- v5.9 -> v5.10. + +* Thu Sep 24 2020 Dmitry V. Levin - 5.9-1 +- v5.8 -> v5.9. + +* Thu Aug 06 2020 Dmitry V. Levin - 5.8-1 +- v5.7 -> v5.8. + +* Mon Jun 01 2020 Dmitry V. Levin - 5.7-1 +- v5.6 -> v5.7. + +* Tue Apr 07 2020 Dmitry V. Levin - 5.6-1 +- v5.5 -> v5.6. + +* Thu Feb 06 2020 Dmitry V. Levin - 5.5-1 +- v5.4 -> v5.5. + +* Thu Nov 28 2019 Dmitry V. Levin - 5.4-1 +- v5.3 -> v5.4. + +* Wed Sep 25 2019 Dmitry V. Levin - 5.3-1 +- v5.2 -> v5.3. + +* Fri Jul 12 2019 Dmitry V. Levin - 5.2-1 +- v5.1 -> v5.2. + +* Wed May 22 2019 Dmitry V. Levin - 5.1-1 +- v5.0 -> v5.1. + +* Tue Mar 19 2019 Dmitry V. Levin - 5.0-1 +- v4.26 -> v5.0 (resolves: #478419, #526740, #851457, #1609318, + #1610774, #1662936, #1676045). + +* Wed Dec 26 2018 Dmitry V. Levin - 4.26-1 +- v4.25 -> v4.26. + +* Tue Oct 30 2018 Dmitry V. Levin - 4.25-1 +- v4.24 -> v4.25. + +* Tue Aug 14 2018 Dmitry V. Levin - 4.24-1 +- v4.23 -> v4.24. + +* Thu Jun 14 2018 Dmitry V. Levin - 4.23-1 +- v4.22 -> v4.23. +- Enabled libdw backend for -k option (#1568647). + +* Thu Apr 05 2018 Dmitry V. Levin - 4.22-1 +- v4.21 -> v4.22. + +* Tue Feb 13 2018 Dmitry V. Levin - 4.21-1 +- v4.20 -> v4.21. + +* Mon Nov 13 2017 Dmitry V. Levin - 4.20-1 +- v4.19 -> v4.20. + +* Tue Sep 05 2017 Dmitry V. Levin - 4.19-1 +- v4.18 -> v4.19. + +* Wed Jul 05 2017 Dmitry V. Levin - 4.18-1 +- v4.17 -> v4.18. + +* Wed May 24 2017 Dmitry V. Levin - 4.17-1 +- v4.16 -> v4.17. + +* Tue Feb 14 2017 Dmitry V. Levin - 4.16-1 +- v4.15 -> v4.16. + +* Wed Dec 14 2016 Dmitry V. Levin - 4.15-1 +- v4.14-100-g622af42 -> v4.15. + +* Wed Nov 16 2016 Dmitry V. Levin - 4.14.0.100.622a-1 +- v4.14 -> v4.14-100-g622af42: + + implemented syscall fault injection. + +* Tue Oct 04 2016 Dmitry V. Levin - 4.14-1 +- v4.13 -> v4.14: + + added printing of the mode argument of open and openat syscalls + when O_TMPFILE flag is set (#1377846). + +* Tue Jul 26 2016 Dmitry V. Levin - 4.13-1 +- v4.12 -> v4.13. + +* Tue May 31 2016 Dmitry V. Levin - 4.12-1 +- v4.11-163-g972018f -> v4.12. + +* Fri Feb 05 2016 Fedora Release Engineering - 4.11.0.163.9720-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jan 15 2016 Dmitry V. Levin - 4.11.0.163.9720-1 +- New upstream snapshot v4.11-163-g972018f: + + fixed decoding of syscalls unknown to the kernel on s390/s390x (#1298294). + +* Wed Dec 23 2015 Dmitry V. Levin - 4.11-2 +- Enabled experimental -k option on x86_64 (#1170296). + +* Mon Dec 21 2015 Dmitry V. Levin - 4.11-1 +- New upstream release: + + print nanoseconds along with seconds in stat family syscalls (#1251176). + +* Fri Jun 19 2015 Fedora Release Engineering - 4.10-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon May 11 2015 Marcin Juszkiewicz - 4.10-2 +- Backport set of upstream patches to get it buildable on AArch64 + +* Fri Mar 06 2015 Dmitry V. Levin - 4.10-1 +- New upstream release: + + enhanced ioctl decoding (#902788). + +* Mon Nov 03 2014 Lubomir Rintel - 4.9-3 +- Regenerate ioctl entries with proper kernel headers + +* Mon Aug 18 2014 Fedora Release Engineering - 4.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Aug 15 2014 Dmitry V. Levin - 4.9-1 +- New upstream release: + + fixed build when and conflict (#993384); + + updated CLOCK_* constants (#1088455); + + enabled ppc64le support (#1122323); + + fixed attach to a process on ppc64le (#1129569). + +* Fri Jul 25 2014 Dan Horák - 4.8-5 +- update for ppc64 + +* Sun Jun 08 2014 Fedora Release Engineering - 4.8-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Dec 6 2013 Peter Robinson 4.8-3 +- Fix FTBFS + +* Sun Aug 04 2013 Fedora Release Engineering - 4.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon Jun 03 2013 Dmitry V. Levin - 4.8-1 +- New upstream release: + + fixed ERESTARTNOINTR leaking to userspace on ancient kernels (#659382); + + fixed decoding of *xattr syscalls (#885233); + + fixed handling of files with 64-bit inode numbers by 32-bit strace (#912790); + + added aarch64 support (#969858). + +* Fri Feb 15 2013 Fedora Release Engineering - 4.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Jul 21 2012 Fedora Release Engineering - 4.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed May 02 2012 Dmitry V. Levin 4.7-1 +- New upstream release. + + implemented proper handling of real SIGTRAPs (#162774). + +* Sat Jan 14 2012 Fedora Release Engineering - 4.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Mar 14 2011 Dmitry V. Levin - 4.6-1 +- New upstream release. + + fixed a corner case in waitpid handling (#663547). + +* Wed Feb 09 2011 Fedora Release Engineering - 4.5.20-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Apr 13 2010 Roland McGrath - 4.5.20-1 +- New upstream release, work mostly by Andreas Schwab and Dmitry V. Levin. + + fixed potential stack buffer overflow in select decoder (#556678); + + fixed FTBFS (#539044). + +* Wed Oct 21 2009 Roland McGrath - 4.5.19-1 +- New upstream release, work mostly by Dmitry V. Levin + + exit/kill strace with traced process exitcode/signal (#105371); + + fixed build on ARM EABI (#507576); + + fixed display of 32-bit argv array on 64-bit architectures (#519480); + + fixed display of 32-bit fcntl(F_SETLK) on 64-bit architectures (#471169); + + fixed several bugs in strings decoder, including potential heap + memory corruption (#470529, #478324, #511035). + +* Thu Aug 28 2008 Roland McGrath - 4.5.18-1 +- build fix for newer kernel headers (#457291) +- fix CLONE_VFORK handling (#455078) +- Support new Linux/PPC system call subpage_prot and PROT_SAO flag. +- In sigaction system call, display sa_flags value along with SIG_DFL/SIG_IGN. + +* Mon Jul 21 2008 Roland McGrath - 4.5.17-1 +- handle O_CLOEXEC, MSG_CMSG_CLOEXEC (#365781) +- fix biarch stat64 decoding (#222275) +- fix spurious "..." in printing of environment strings (#358241) +- improve prctl decoding (#364401) +- fix hang wait on exited child with exited child (#354261) +- fix biarch fork/vfork (-f) tracing (#447475) +- fix biarch printing of negative argument kill (#430585) +- fix biarch decoding of error return values (#447587) +- fix -f tracing of CLONE_VFORK (#455078) +- fix ia64 register clobberation in -f tracing (#453438) +- print SO_NODEFER, SA_RESETHAND instead of SA_NOMASK, SA_ONESHOT (#455821) +- fix futex argument decoding (#448628, #448629) + +* Fri Aug 3 2007 Roland McGrath - 4.5.16-1 +- fix multithread issues (#240962, #240961, #247907) +- fix spurious SIGSTOP on early interrupt (#240986) +- fix utime for biarch (#247185) +- fix -u error message (#247170) +- better futex syscall printing (##241467) +- fix argv/envp printing with small -s settings, and for biarch +- new syscalls: getcpu, eventfd, timerfd, signalfd, epoll_pwait, + move_pages, utimensat + +* Tue Jan 16 2007 Roland McGrath - 4.5.15-1 +- biarch fixes (#179740, #192193, #171626, #173050, #218433, #218043) +- fix -ff -o behavior (#204950, #218435, #193808, #219423) +- better quotactl printing (#118696) +- *at, inotify*, pselect6, ppoll and unshare syscalls (#178633, #191275) +- glibc-2.5 build fixes (#209856) +- memory corruption fixes (#200621 +- fix race in child setup under -f (#180293) +- show ipc key values in hex (#198179, #192182) +- disallow -c with -ff (#187847) +- Resolves: RHBZ #179740, RHBZ #192193, RHBZ #204950, RHBZ #218435 +- Resolves: RHBZ #193808, RHBZ #219423, RHBZ #171626, RHBZ #173050 +- Resolves: RHBZ #218433, RHBZ #218043, RHBZ #118696, RHBZ #178633 +- Resolves: RHBZ #191275, RHBZ #209856, RHBZ #200621, RHBZ #180293 +- Resolves: RHBZ #198179, RHBZ #198182, RHBZ #187847 + +* Mon Nov 20 2006 Jakub Jelinek - 4.5.14-4 +- Fix ia64 syscall decoding (#206768) +- Fix build with glibc-2.4.90-33 and up on all arches but ia64 +- Fix build against 2.6.18+ headers + +* Tue Aug 22 2006 Roland McGrath - 4.5.14-3 +- Fix bogus decoding of syscalls >= 300 (#201462, #202620). + +* Fri Jul 14 2006 Jesse Keating - 4.5.14-2 +- rebuild + +* Fri Feb 10 2006 Jesse Keating - 4.5.14-1.2 +- bump again for long double bug on ppc{,64} + +* Tue Feb 07 2006 Jesse Keating - 4.5.14-1.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Mon Jan 16 2006 Roland McGrath - 4.5.14-1 +- Fix biarch decoding of socket syscalls (#174354). +- Fix biarch -e support (#173986). +- Accept numeric syscalls in -e (#174798). +- Fix ipc syscall decoding (#164755). +- Improve msgrcv printing (#164757). +- Man page updates (#165375). +- Improve mount syscall printing (#165377). +- Correct printing of restarting syscalls (#165469). + +* Wed Aug 3 2005 Roland McGrath - 4.5.13-1 +- Fix setsockopt decoding on 64-bit (#162449). +- Fix typos in socket option name strings (#161578). +- Display more IPV6 socket options by name (#162450). +- Don't display inappropriate syscalls for -e trace=file (#159340). +- New selector type -e trace=desc for file-descriptor using calls (#159400). +- Fix 32-bit old_mmap syscall decoding on x86-64 (#162467, #164215). +- Fix errors detaching from multithreaded process on interrupt (#161919). +- Note 4.5.12 fix for crash handling bad signal numbers (#162739). + +* Wed Jun 8 2005 Roland McGrath - 4.5.12-1 +- Fix known syscall recognition for IA32 processes on x86-64 (#158934). +- Fix bad output for ptrace on x86-64 (#159787). +- Fix potential buffer overruns (#151570, #159196). +- Make some diagnostics more consistent (#159308). +- Update PowerPC system calls. +- Better printing for Linux aio system calls. +- Don't truncate statfs64 fields to 32 bits in output (#158243). +- Cosmetic code cleanups (#159688). + +* Tue Mar 22 2005 Roland McGrath - 4.5.11-1 +- Build tweaks. +- Note 4.5.10 select fix (#151570). + +* Mon Mar 14 2005 Roland McGrath - 4.5.10-1 +- Fix select handling on nonstandard fd_set sizes. +- Don't print errors for null file name pointers. +- Fix initial execve output with -i (#143365). + +* Fri Feb 4 2005 Roland McGrath - 4.5.9-2 +- update ia64 syscall list (#146245) +- fix x86_64 syscall argument extraction for 32-bit processes (#146093) +- fix -e signal=NAME parsing (#143362) +- fix x86_64 exit_group syscall handling +- improve socket ioctl printing (#138223) +- code cleanups (#143369, #143370) +- improve mount flags printing (#141932) +- support symbolic printing of x86_64 arch_prctl parameters (#142667) +- fix potential crash in getxattr printing + +* Tue Oct 19 2004 Roland McGrath - 4.5.8-1 +- fix multithreaded exit handling (#132150, #135254) +- fix ioctl name matching (#129808) +- print RTC_* ioctl structure contents (#58606) +- grok epoll_* syscalls (#134463) +- grok new RLIMIT_* values (#133594) +- print struct cmsghdr contents for sendmsg (#131689) +- fix clock_* and timer_* argument output (#131420) + +* Tue Aug 31 2004 Roland McGrath - 4.5.7-2 +- new upstream version, misc fixes and updates (#128091, #129166, #128391, #129378, #130965, #131177) + +* Mon Jul 12 2004 Roland McGrath 4.5.6-1 +- new upstream version, updates ioctl lists (#127398), fixes quotactl (#127393), more ioctl decoding (#126917) + +* Sun Jun 27 2004 Roland McGrath 4.5.5-1 +- new upstream version, fixes x86-64 biarch support (#126547) + +* Tue Jun 15 2004 Elliot Lee 4.5.4-2 +- rebuilt + +* Thu Jun 3 2004 Roland McGrath 4.5.4-0.FC1 +- rebuilt for FC1 update + +* Thu Jun 3 2004 Roland McGrath 4.5.4-1 +- new upstream version, more ioctls (#122257), minor fixes + +* Fri Apr 16 2004 Roland McGrath 4.5.3-1 +- new upstream version, mq_* calls (#120701), -p vs NPTL (#120462), more fixes (#118694, #120541, #118685) + +* Tue Mar 02 2004 Elliot Lee 4.5.2-1.1 +- rebuilt + +* Mon Mar 1 2004 Roland McGrath 4.5.2-1 +- new upstream version, sched_* calls (#116990), show core flag (#112117) + +* Fri Feb 13 2004 Elliot Lee +- rebuilt + +* Thu Nov 13 2003 Roland McGrath 4.5.1-1 +- new upstream version, more fixes (#108012, #105366, #105359, #105358) + +* Tue Sep 30 2003 Roland McGrath 4.5-3 +- revert bogus s390 fix + +* Thu Sep 25 2003 Roland McGrath 4.5-1.2.1AS +- rebuilt for 2.1AS erratum + +* Wed Sep 24 2003 Roland McGrath 4.5-2 +- rebuilt + +* Wed Sep 24 2003 Roland McGrath 4.5-1 +- new upstream version, more fixes (#101499, #104365) + +* Thu Jul 17 2003 Roland McGrath 4.4.99-2 +- rebuilt + +* Thu Jul 17 2003 Roland McGrath 4.4.99-1 +- new upstream version, groks more new system calls, PF_INET6 sockets + +* Tue Jun 10 2003 Roland McGrath 4.4.98-1 +- new upstream version, more fixes (#90754, #91085) + +* Wed Jun 04 2003 Elliot Lee +- rebuilt + +* Sun Mar 30 2003 Roland McGrath 4.4.96-1 +- new upstream version, handles yet more 2.5 syscalls, x86_64 & ia64 fixes + +* Mon Feb 24 2003 Elliot Lee 4.4.95-2 +- rebuilt + +* Mon Feb 24 2003 Roland McGrath 4.4.95-1 +- new upstream version, fixed getresuid/getresgid (#84959) + +* Wed Feb 19 2003 Roland McGrath 4.4.94-1 +- new upstream version, new option -E to set environment variables (#82392) + +* Wed Jan 22 2003 Tim Powers 4.4.93-2 +- rebuilt + +* Tue Jan 21 2003 Roland McGrath 4.4.93-1 +- new upstream version, fixes ppc and s390 bugs, adds missing ptrace requests + +* Fri Jan 10 2003 Roland McGrath 4.4.91-1 +- new upstream version, fixes -f on x86-64 + +* Fri Jan 10 2003 Roland McGrath 4.4.90-1 +- new upstream version, fixes all known bugs modulo ia64 and s390 issues + +* Fri Jan 03 2003 Florian La Roche 4.4-11 +- add further s390 patch from IBM + +* Wed Nov 27 2002 Tim Powers 4.4-10 +- remove unpackaged files from the buildroot + +* Mon Oct 07 2002 Phil Knirsch 4.4-9.1 +- Added latest s390(x) patch. + +* Fri Sep 06 2002 Karsten Hopp 4.4-9 +- preliminary x86_64 support with an ugly patch to help + debugging. Needs cleanup! + +* Mon Sep 2 2002 Jakub Jelinek 4.4-8 +- newer version of the clone fixing patch (Roland McGrath) +- aio syscalls for i386/ia64/ppc (Ben LaHaise) + +* Wed Aug 28 2002 Jakub Jelinek 4.4-7 +- fix strace -f (Roland McGrath, #68994) +- handle ?et_thread_area, SA_RESTORER (Ulrich Drepper) + +* Fri Jun 21 2002 Jakub Jelinek 4.4-6 +- handle futexes, *xattr, sendfile64, etc. (Ulrich Drepper) +- handle modify_ldt (#66894) + +* Thu May 23 2002 Tim Powers +- automated rebuild + +* Tue Apr 16 2002 Jakub Jelinek 4.4-4 +- fix for the last patch by Jeff Law (#62591) + +* Mon Mar 4 2002 Preston Brown 4.4-3 +- integrate patch from Jeff Law to eliminate hang tracing threads + +* Sat Feb 23 2002 Florian La Roche +- minor update from debian tar-ball + +* Wed Jan 02 2002 Florian La Roche +- update to 4.4 + +* Sun Jul 22 2001 Florian La Roche +- disable s390 patches, they are already included + +* Wed Jul 18 2001 Preston Brown 4.3-1 +- new upstream version. Seems to have integrated most new syscalls +- tracing threaded programs is now functional. + +* Mon Jun 11 2001 Than Ngo +- port s390 patches from IBM + +* Wed May 16 2001 Nalin Dahyabhai +- modify new syscall patch to allocate enough heap space in setgroups32() + +* Wed Feb 14 2001 Jakub Jelinek +- #include in addition to + +* Fri Jan 26 2001 Karsten Hopp +- clean up conflicting patches. This happened only + when building on S390 + +* Fri Jan 19 2001 Bill Nottingham +- update to CVS, reintegrate ia64 support + +* Fri Dec 8 2000 Bernhard Rosenkraenzer +- Get S/390 support into the normal package + +* Sat Nov 18 2000 Florian La Roche +- added S/390 patch from IBM, adapting it to not conflict with + IA64 patch + +* Sat Aug 19 2000 Jakub Jelinek +- doh, actually apply the 2.4 syscalls patch +- make it compile with 2.4.0-test7-pre4+ headers, add + getdents64 and fcntl64 + +* Thu Aug 3 2000 Jakub Jelinek +- add a bunch of new 2.4 syscalls (#14036) + +* Wed Jul 12 2000 Prospector +- automatic rebuild +- excludearch ia64 + +* Fri Jun 2 2000 Matt Wilson +- use buildinstall for FHS + +* Wed May 24 2000 Jakub Jelinek +- make things compile on sparc +- fix sigreturn on sparc + +* Fri Mar 31 2000 Bill Nottingham +- fix stat64 misdef (#10485) + +* Tue Mar 21 2000 Michael K. Johnson +- added ia64 patch + +* Thu Feb 03 2000 Cristian Gafton +- man pages are compressed +- version 4.2 (why are we keeping all these patches around?) + +* Sat Nov 27 1999 Jeff Johnson +- update to 4.1 (with sparc socketcall patch). + +* Fri Nov 12 1999 Jakub Jelinek +- fix socketcall on sparc. + +* Thu Sep 02 1999 Cristian Gafton +- fix KERN_SECURELVL compile problem + +* Tue Aug 31 1999 Cristian Gafton +- added alpha patch from HJLu to fix the osf_sigprocmask interpretation + +* Sat Jun 12 1999 Jeff Johnson +- update to 3.99.1. + +* Wed Jun 2 1999 Jeff Johnson +- add (the other :-) jj's sparc patch. + +* Wed May 26 1999 Jeff Johnson +- upgrade to 3.99 in order to +- add new 2.2.x open flags (#2955). +- add new 2.2.x syscalls (#2866). +- strace 3.1 patches carried along for now. + +* Sun May 16 1999 Jeff Johnson +- don't rely on (broken!) rpm %%patch (#2735) + +* Tue Apr 06 1999 Preston Brown +- strip binary + +* Sun Mar 21 1999 Cristian Gafton +- auto rebuild in the new build environment (release 16) + +* Tue Feb 9 1999 Jeff Johnson +- vfork est arrive! + +* Tue Feb 9 1999 Christopher Blizzard +- Add patch to follow clone() syscalls, too. + +* Sun Jan 17 1999 Jeff Johnson +- patch to build alpha/sparc with glibc 2.1. + +* Thu Dec 03 1998 Cristian Gafton +- patch to build on ARM + +* Wed Sep 30 1998 Jeff Johnson +- fix typo (printf, not tprintf). + +* Sat Sep 19 1998 Jeff Johnson +- fix compile problem on sparc. + +* Tue Aug 18 1998 Cristian Gafton +- buildroot + +* Mon Jul 20 1998 Cristian Gafton +- added the umoven patch from James Youngman +- fixed build problems on newer glibc releases + +* Mon Jun 08 1998 Prospector System +- translations modified for de, fr, tr