commit: 01eb93d6f752c2bb3815bb794572231651f105fa
parent 7a0f1ecc4e7b59ece9d98d070bbc06bc7f11ab86
Author: Michael Forney <mforney@mforney.org>
Date: Thu, 21 Mar 2024 22:35:37 -0700
strace: Update to 6.8
Diffstat:
13 files changed, 140 insertions(+), 106 deletions(-)
diff --git a/pkg/strace/.gitignore b/pkg/strace/.gitignore
@@ -1,3 +1,3 @@
/src
-/strace-6.4.tar.xz
+/strace-6.8.tar.xz
/tools.ninja
diff --git a/pkg/strace/gen.lua b/pkg/strace/gen.lua
@@ -97,6 +97,7 @@ local srcs = paths[[src/(
bpf_sock_filter.c
btrfs.c
cacheflush.c
+ cachestat.c
capability.c
chdir.c
chmod.c
@@ -119,6 +120,7 @@ local srcs = paths[[src/(
evdev_mpers.c
eventfd.c
execve.c
+ exitkill.c
fadvise.c
fallocate.c
fanotify.c
@@ -149,7 +151,7 @@ local srcs = paths[[src/(
fstatfs.c
fstatfs64.c
futex.c
- futex_waitv.c
+ futex2.c
gen/gen_hdio.c
get_personality.c
get_robust_list.c
@@ -186,9 +188,12 @@ local srcs = paths[[src/(
link.c
lirc_ioctl.c
listen.c
+ listmount.c
lookup_dcookie.c
loop.c
lseek.c
+ lsm.c
+ map_shadow_stack.c
mem.c
membarrier.c
memfd_create.c
@@ -316,6 +321,7 @@ local srcs = paths[[src/(
stat64.c
statfs.c
statfs64.c
+ statmount.c
statx.c
strauss.c
string_to_uint.c
@@ -381,8 +387,8 @@ file('bin/strace', '755', '$outdir/strace')
build('sed', '$outdir/strace.1', '$srcdir/doc/strace.1.in', {
expr={
- [[-e 's,@STRACE_MANPAGE_DATE@,2023-06-11,']],
- [[-e 's,@VERSION@,6.4,']],
+ [[-e 's,@STRACE_MANPAGE_DATE@,2024-03-13,']],
+ [[-e 's,@VERSION@,6.8,']],
[[-e 's,@ENABLE_STACKTRACE_TRUE@,#,']],
[[-e 's,@ENABLE_STACKTRACE_FALSE@,,']],
[[-e 's,@ENABLE_SECONTEXT_TRUE@,#,']],
diff --git a/pkg/strace/patch/0001-Don-t-return-expression-in-void-function.patch b/pkg/strace/patch/0001-Don-t-return-expression-in-void-function.patch
@@ -1,4 +1,4 @@
-From 14b52959359f69bc5806bbd8d8c44f72d912aa1a Mon Sep 17 00:00:00 2001
+From 79aac49a3d3953b6e62b477bd488c3b7237a5aee Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Fri, 5 Jul 2019 20:52:24 -0700
Subject: [PATCH] Don't return expression in void function
@@ -8,10 +8,10 @@ Subject: [PATCH] Don't return expression in void function
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/defs.h b/src/defs.h
-index 846a7ae5a..d6b54a633 100644
+index 89ec13fc5..465d58139 100644
--- a/src/defs.h
+++ b/src/defs.h
-@@ -807,7 +807,7 @@ extern bool pathtrace_match_set(struct tcb *, struct path_set *,
+@@ -824,7 +824,7 @@ extern bool pathtrace_match_set(struct tcb *, struct path_set *,
static inline void
pathtrace_select(const char *path)
{
@@ -21,5 +21,5 @@ index 846a7ae5a..d6b54a633 100644
static inline bool
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch b/pkg/strace/patch/0002-Use-__typeof__-spelling-of-typeof.patch
@@ -1,4 +1,4 @@
-From cdecbf8aee12f837e878a568814bb81550412b6b Mon Sep 17 00:00:00 2001
+From 268084161926ad4d1d110a3a5432e7ffd4e92fdf Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 6 Jul 2019 01:33:01 -0700
Subject: [PATCH] Use __typeof__ spelling of typeof
@@ -21,10 +21,10 @@ Subject: [PATCH] Use __typeof__ spelling of typeof
14 files changed, 32 insertions(+), 32 deletions(-)
diff --git a/src/bpf.c b/src/bpf.c
-index 7bdeb4f65..1e72f3e30 100644
+index bbcdceddd..690df570d 100644
--- a/src/bpf.c
+++ b/src/bpf.c
-@@ -1432,7 +1432,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
+@@ -1440,7 +1440,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
tprint_struct_next();
PRINT_FIELD_U(attr, target_btf_id);
}
@@ -33,7 +33,7 @@ index 7bdeb4f65..1e72f3e30 100644
break;
/* TODO: prog type == BPF_PROG_TYPE_TRACING */
-@@ -1448,7 +1448,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
+@@ -1456,7 +1456,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
print_iter_info_array_member, 0);
tprint_struct_next();
PRINT_FIELD_U(attr, iter_info_len);
@@ -42,7 +42,7 @@ index 7bdeb4f65..1e72f3e30 100644
break;
}
-@@ -1460,7 +1460,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
+@@ -1468,7 +1468,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
tprint_struct_begin();
PRINT_FIELD_X(attr.perf_event, bpf_cookie);
tprint_struct_end();
@@ -51,7 +51,7 @@ index 7bdeb4f65..1e72f3e30 100644
break;
/* TODO: prog type == BPF_PROG_TYPE_KPROBE */
-@@ -1500,7 +1500,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
+@@ -1508,7 +1508,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
&buf.cookie, sizeof(buf.cookie),
tfetch_mem, print_xint_array_member, 0);
tprint_struct_end();
@@ -60,7 +60,7 @@ index 7bdeb4f65..1e72f3e30 100644
break;
}
-@@ -1510,7 +1510,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
+@@ -1518,7 +1518,7 @@ BEGIN_BPF_CMD_DECODER(BPF_LINK_CREATE)
* can pick up non-zero values in the union at the end
* of the link_create struct.
*/
@@ -128,10 +128,10 @@ index 31ee871b3..76d7a2bec 100644
&info, sizeof(info), tfetch_mem,
print_btrfs_ioctl_space_info, 0);
diff --git a/src/defs.h b/src/defs.h
-index d6b54a633..d24b11884 100644
+index 465d58139..ae1d1d1dc 100644
--- a/src/defs.h
+++ b/src/defs.h
-@@ -1145,7 +1145,7 @@ print_local_array_ex(struct tcb *tcp,
+@@ -1162,7 +1162,7 @@ print_local_array_ex(struct tcb *tcp,
# define print_local_array_upto(tcp_, start_addr_, upto_, print_func_) \
print_local_array_ex((tcp_), (start_addr_), \
CLAMP((upto_), 0, \
@@ -140,7 +140,7 @@ index d6b54a633..d24b11884 100644
sizeof((start_addr_)[0]), (print_func_), \
NULL, 0, NULL, NULL)
-@@ -2027,8 +2027,8 @@ scno_pers_is_valid(kernel_ulong_t scno, unsigned int pers)
+@@ -2045,8 +2045,8 @@ scno_pers_is_valid(kernel_ulong_t scno, unsigned int pers)
# define ILOG2_ITER_(val_, ret_, bit_) \
do { \
@@ -178,27 +178,21 @@ index 7b51bc9f9..ee9a42754 100644
tfetch_mem, print_fiemap_extent, 0);
}
diff --git a/src/landlock.c b/src/landlock.c
-index d3ddb4edb..151bea7af 100644
+index 7ee44f84c..16a430de8 100644
--- a/src/landlock.c
+++ b/src/landlock.c
-@@ -19,7 +19,7 @@ print_landlock_ruleset_attr(struct tcb *tcp, const kernel_ulong_t addr,
+@@ -21,9 +21,9 @@ print_landlock_ruleset_attr(struct tcb *tcp, const kernel_ulong_t addr,
{
- struct landlock_ruleset_attr attr;
+ struct landlock_ruleset_attr attr = { 0 };
+ const size_t min_attr_size =
+- offsetofend(typeof(attr), handled_access_fs);
++ offsetofend(__typeof__(attr), handled_access_fs);
+ const size_t max_attr_size =
+- offsetofend(typeof(attr), handled_access_net);
++ offsetofend(__typeof__(attr), handled_access_net);
-- if (size < offsetofend(typeof(attr), handled_access_fs)) {
-+ if (size < offsetofend(__typeof__(attr), handled_access_fs)) {
+ if (size < min_attr_size) {
printaddr(addr);
- return;
- }
-@@ -31,7 +31,7 @@ print_landlock_ruleset_attr(struct tcb *tcp, const kernel_ulong_t addr,
- PRINT_FIELD_FLAGS(attr, handled_access_fs, landlock_ruleset_access_fs,
- "LANDLOCK_ACCESS_FS_???");
-
-- if (size > offsetofend(typeof(attr), handled_access_fs)) {
-+ if (size > offsetofend(__typeof__(attr), handled_access_fs)) {
- tprint_arg_next();
- tprint_more_data_follows();
- }
diff --git a/src/list.h b/src/list.h
index 4de4cb3be..f4ec11f0e 100644
--- a/src/list.h
@@ -242,7 +236,7 @@ index 4de4cb3be..f4ec11f0e 100644
#endif /* !STRACE_LIST_H */
diff --git a/src/macros.h b/src/macros.h
-index f22be23c5..184f016b0 100644
+index cb290c612..81cde400a 100644
--- a/src/macros.h
+++ b/src/macros.h
@@ -62,7 +62,7 @@
@@ -255,10 +249,10 @@ index f22be23c5..184f016b0 100644
# ifndef offsetofend
# define offsetofend(type_, member_) \
diff --git a/src/print_fields.h b/src/print_fields.h
-index eca389e7e..b97e86377 100644
+index 09548ce21..6a7e76982 100644
--- a/src/print_fields.h
+++ b/src/print_fields.h
-@@ -774,7 +774,7 @@ tprint_sysret_end(void)
+@@ -792,7 +792,7 @@ tprint_sysret_end(void)
# define MAYBE_PRINT_FIELD_LEN(print_prefix_, where_, field_, \
len_, print_func_, ...) \
do { \
@@ -312,7 +306,7 @@ index 25f6e76c5..c62566800 100644
/* session id is printed as 0x%x in libteec */
diff --git a/src/ubi.c b/src/ubi.c
-index bd2d2811e..ff9f88cd0 100644
+index 11a435b10..e75377783 100644
--- a/src/ubi.c
+++ b/src/ubi.c
@@ -76,7 +76,7 @@ static bool
@@ -325,7 +319,7 @@ index bd2d2811e..ff9f88cd0 100644
tprint_struct_begin();
PRINT_FIELD_D(*p, vol_id);
diff --git a/tests/btrfs.c b/tests/btrfs.c
-index d8ef87a96..321d3a25c 100644
+index ab5bfae68..a3161875b 100644
--- a/tests/btrfs.c
+++ b/tests/btrfs.c
@@ -876,7 +876,7 @@ btrfs_print_tree_search_buf(struct btrfs_ioctl_search_key *key,
@@ -351,5 +345,5 @@ index 20f92dd1d..aa6ecc8f5 100644
# define TYPEOF_FLOCK_OFF_T off_t
#endif
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0003-Make-tcp_sysent-a-static-inline-function.patch b/pkg/strace/patch/0003-Make-tcp_sysent-a-static-inline-function.patch
@@ -1,4 +1,4 @@
-From 0355d08676cdc94354bd35f8d885984938645fb3 Mon Sep 17 00:00:00 2001
+From 75a23af067ff5390a47df1e877f68834241009b9 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 6 Jul 2019 01:40:36 -0700
Subject: [PATCH] Make tcp_sysent a static inline function
@@ -10,10 +10,10 @@ operator without evaluating the macro argument multiple times.
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/defs.h b/src/defs.h
-index d24b11884..60b9e3322 100644
+index ae1d1d1dc..bbd8f6748 100644
--- a/src/defs.h
+++ b/src/defs.h
-@@ -398,8 +398,12 @@ struct tcb {
+@@ -402,8 +402,12 @@ struct tcb {
# define syscall_tampered_nofail(tcp) ((tcp)->flags & TCB_TAMPERED_NO_FAIL)
# define has_seccomp_filter(tcp) ((tcp)->flags & TCB_SECCOMP_FILTER)
@@ -29,5 +29,5 @@ index d24b11884..60b9e3322 100644
# include "xlat.h"
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0004-Avoid-empty-initializer-lists.patch b/pkg/strace/patch/0004-Avoid-empty-initializer-lists.patch
@@ -1,11 +1,10 @@
-From 463e94867f84bcb4dc85e18cb4304edea90d8659 Mon Sep 17 00:00:00 2001
+From 70c04478b105ab15e3e3a4bfcfcf96ace104b32e Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sat, 6 Jul 2019 01:54:05 -0700
Subject: [PATCH] Avoid empty initializer lists
---
src/bpf.c | 4 ++--
- src/futex_waitv.c | 2 +-
src/sched.c | 2 +-
src/signal.c | 2 +-
src/strace.c | 2 +-
@@ -17,13 +16,13 @@ Subject: [PATCH] Avoid empty initializer lists
tests/timer_create.c | 2 +-
tests/wait4.c | 2 +-
tests/waitid.c | 2 +-
- 13 files changed, 17 insertions(+), 17 deletions(-)
+ 12 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/bpf.c b/src/bpf.c
-index 1e72f3e30..7a6406687 100644
+index 690df570d..16f2b7d31 100644
--- a/src/bpf.c
+++ b/src/bpf.c
-@@ -48,7 +48,7 @@ bpf_cmd_decoder(struct tcb *const tcp, \
+@@ -50,7 +50,7 @@ bpf_cmd_decoder(struct tcb *const tcp, \
#define BEGIN_BPF_CMD_DECODER(bpf_cmd) \
static DECL_BPF_CMD_DECODER(decode_ ## bpf_cmd) \
{ \
@@ -32,7 +31,7 @@ index 1e72f3e30..7a6406687 100644
size_t attr_size = bpf_cmd ## _struct_size; \
const unsigned int len = MIN(size, attr_size); \
memcpy(&attr, data, len); \
-@@ -159,7 +159,7 @@ print_ebpf_prog(struct tcb *const tcp, const uint64_t addr, const uint32_t len)
+@@ -161,7 +161,7 @@ print_ebpf_prog(struct tcb *const tcp, const uint64_t addr, const uint32_t len)
if (abbrev(tcp)) {
printaddr(addr);
} else {
@@ -41,19 +40,6 @@ index 1e72f3e30..7a6406687 100644
struct ebpf_insn insn;
print_array(tcp, addr, len, &insn, sizeof(insn),
-diff --git a/src/futex_waitv.c b/src/futex_waitv.c
-index 512ee715d..340201aa3 100644
---- a/src/futex_waitv.c
-+++ b/src/futex_waitv.c
-@@ -49,7 +49,7 @@ print_waiter_array(struct tcb * const tcp, const kernel_ulong_t waiters,
- const unsigned int nr_futexes)
- {
- struct futex_waitv buf;
-- struct print_waiter_data data = {};
-+ struct print_waiter_data data = {0};
-
- print_array(tcp, waiters, nr_futexes, &buf, sizeof(buf),
- tfetch_mem, print_waiter, &data);
diff --git a/src/sched.c b/src/sched.c
index 010366871..2dda5b872 100644
--- a/src/sched.c
@@ -81,10 +67,10 @@ index 98f84d500..8680b10fb 100644
return;
tprints_string(sprintsigmask_n("", mask, len));
diff --git a/src/strace.c b/src/strace.c
-index 5752177b7..9cd4ff461 100644
+index 649b8d160..9c87e34ed 100644
--- a/src/strace.c
+++ b/src/strace.c
-@@ -3693,7 +3693,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig)
+@@ -3891,7 +3891,7 @@ trace_syscall(struct tcb *tcp, unsigned int *sig)
syscall_entering_finish(tcp, res);
return res;
} else {
@@ -94,7 +80,7 @@ index 5752177b7..9cd4ff461 100644
if (res != 0) {
res = syscall_exiting_trace(tcp, &ts, res);
diff --git a/tests/btrfs.c b/tests/btrfs.c
-index 321d3a25c..442377130 100644
+index a3161875b..88112e463 100644
--- a/tests/btrfs.c
+++ b/tests/btrfs.c
@@ -313,7 +313,7 @@ btrfs_test_subvol_ioctls(void)
@@ -114,7 +100,7 @@ index 321d3a25c..442377130 100644
+ struct btrfs_ioctl_vol_args vol_args = {0};
ioctl(-1, BTRFS_IOC_BALANCE_CTL, 1);
- printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s) = -1 EBADF (%m)\n",
+ printf("ioctl(-1, %s, %sBTRFS_BALANCE_CTL_PAUSE%s)" RVAL_EBADF,
@@ -764,7 +764,7 @@ btrfs_print_defrag_range_args(struct btrfs_ioctl_defrag_range_args *args,
static void
btrfs_test_defrag_ioctls(void)
@@ -132,9 +118,9 @@ index 321d3a25c..442377130 100644
+ struct btrfs_ioctl_space_args args = {0};
ioctl(-1, BTRFS_IOC_SPACE_INFO, NULL);
- printf("ioctl(-1, %s, NULL) = -1 EBADF (%m)\n",
+ printf("ioctl(-1, %s, NULL)" RVAL_EBADF,
diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c
-index 51bd0d7f7..a1053fd1e 100644
+index 13c3dad87..4638d492b 100644
--- a/tests/clock_nanosleep.c
+++ b/tests/clock_nanosleep.c
@@ -39,7 +39,7 @@ main(void)
@@ -147,7 +133,7 @@ index 51bd0d7f7..a1053fd1e 100644
const struct itimerval itv = {
.it_interval.tv_usec = 222222,
diff --git a/tests/nanosleep.c b/tests/nanosleep.c
-index 8ff6a86b8..6377f38ee 100644
+index 743105e80..2a7ddff5c 100644
--- a/tests/nanosleep.c
+++ b/tests/nanosleep.c
@@ -53,7 +53,7 @@ main(void)
@@ -160,7 +146,7 @@ index 8ff6a86b8..6377f38ee 100644
const struct itimerval itv = { .it_value.tv_usec = 111111 };
diff --git a/tests/restart_syscall.c b/tests/restart_syscall.c
-index e4e83dc09..da83d1dc7 100644
+index a9b1d2291..7fd7fb602 100644
--- a/tests/restart_syscall.c
+++ b/tests/restart_syscall.c
@@ -26,7 +26,7 @@ main(void)
@@ -170,8 +156,8 @@ index e4e83dc09..da83d1dc7 100644
- const sigset_t set = {};
+ const sigset_t set = {0};
const struct sigaction act = { .sa_handler = SIG_IGN };
- const struct itimerval itv = { .it_value.tv_usec = 111111 };
- const struct timespec req = { .tv_nsec = 222222222 };
+ const struct itimerval itv = { .it_interval.tv_usec = 22222,
+ .it_value.tv_usec = 11111 };
diff --git a/tests/setrlimit.c b/tests/setrlimit.c
index d4953f6f8..60d54fbd8 100644
--- a/tests/setrlimit.c
@@ -186,12 +172,12 @@ index d4953f6f8..60d54fbd8 100644
continue;
rlimit[0] = libc_rlim.rlim_cur;
diff --git a/tests/timer_create.c b/tests/timer_create.c
-index af91da0d3..a0a79f1ad 100644
+index e4357b2cf..8d6cd415f 100644
--- a/tests/timer_create.c
+++ b/tests/timer_create.c
@@ -24,7 +24,7 @@ main(void)
- printf("timer_create(CLOCK_REALTIME, NULL, NULL) = -1 %s (%m)\n",
- errno2name());
+ printf("timer_create(CLOCK_REALTIME, NULL, NULL) = %s\n",
+ sprintrc(-1));
- int tid[4] = {};
+ int tid[4] = {0};
@@ -225,5 +211,5 @@ index 1ed763840..fef941874 100644
assert(sigprocmask(SIG_BLOCK, &mask, NULL) == 0);
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch b/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch
@@ -1,4 +1,4 @@
-From 989bfd76544b4f62ade9e35d2476332934d27d86 Mon Sep 17 00:00:00 2001
+From c154f9dfaaccabc52af12ccabc86e9d0c6c18ada Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 21:25:13 -0700
Subject: [PATCH] Avoid pointer arithmetic on `void *`
@@ -12,7 +12,7 @@ Subject: [PATCH] Avoid pointer arithmetic on `void *`
5 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/src/netlink_smc_diag.c b/src/netlink_smc_diag.c
-index f7ff06b6b..dbf5be980 100644
+index 74e78b966..c3a28a839 100644
--- a/src/netlink_smc_diag.c
+++ b/src/netlink_smc_diag.c
@@ -42,7 +42,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_req)
@@ -24,7 +24,7 @@ index f7ff06b6b..dbf5be980 100644
PRINT_FIELD_FLAGS(req, diag_ext,
smc_diag_extended_flags,
"1<<SMC_DIAG_\?\?\?-1");
-@@ -250,7 +250,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_msg)
+@@ -261,7 +261,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_msg)
if (len >= sizeof(msg)) {
if (!umoven_or_printaddr(tcp, addr + offset,
sizeof(msg) - offset,
@@ -34,7 +34,7 @@ index f7ff06b6b..dbf5be980 100644
smc_states, "SMC_???");
tprint_struct_next();
diff --git a/src/print_timespec.h b/src/print_timespec.h
-index 9603a6bb6..f5f747c42 100644
+index dc5f9d10c..87f7ff973 100644
--- a/src/print_timespec.h
+++ b/src/print_timespec.h
@@ -66,6 +66,8 @@ bool
@@ -60,7 +60,7 @@ index 9603a6bb6..f5f747c42 100644
tprint_array_end();
diff --git a/src/sockaddr.c b/src/sockaddr.c
-index 9139da1cd..7126ad2fc 100644
+index ee1ce8828..c1f9b1740 100644
--- a/src/sockaddr.c
+++ b/src/sockaddr.c
@@ -583,7 +583,7 @@ print_sockaddr_data_ll(struct tcb *tcp, const void *const buf,
@@ -82,7 +82,7 @@ index 9139da1cd..7126ad2fc 100644
const int transport_len = MIN(sa->transport_len,
len - offsetof(struct sockaddr_rxrpc,
diff --git a/src/tee.c b/src/tee.c
-index fc735e0da..f705a7a94 100644
+index c62566800..1596a5095 100644
--- a/src/tee.c
+++ b/src/tee.c
@@ -69,7 +69,7 @@ tee_fetch_buf_data(struct tcb *const tcp,
@@ -95,7 +95,7 @@ index fc735e0da..f705a7a94 100644
(arg_size + TEE_IOCTL_PARAM_SIZE(*num_params) != buf->buf_len)) {
/*
diff --git a/src/ucopy.c b/src/ucopy.c
-index c769a1916..ed401ae74 100644
+index b4e746b0b..007b5373e 100644
--- a/src/ucopy.c
+++ b/src/ucopy.c
@@ -186,7 +186,7 @@ vm_read_mem(const pid_t pid, void *laddr,
@@ -148,5 +148,5 @@ index c769a1916..ed401ae74 100644
}
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch b/pkg/strace/patch/0007-Don-t-omit-second-operand-to-operator.patch
@@ -1,4 +1,4 @@
-From 3b3898e2a370be0489226da973e18176530e267a Mon Sep 17 00:00:00 2001
+From 586b8d1808d18149a872f0ee1dc8903b9f9e8750 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 21:53:16 -0700
Subject: [PATCH] Don't omit second operand to '?' operator
@@ -7,8 +7,10 @@ Subject: [PATCH] Don't omit second operand to '?' operator
src/kd_ioctl.c | 2 +-
src/open.c | 5 +++--
src/prctl.c | 8 ++++----
- src/strace.c | 6 +++---
- 4 files changed, 11 insertions(+), 10 deletions(-)
+ src/strace.c | 8 ++++----
+ src/strauss.c | 4 +++-
+ src/util.c | 2 +-
+ 6 files changed, 16 insertions(+), 13 deletions(-)
diff --git a/src/kd_ioctl.c b/src/kd_ioctl.c
index ada23d536..fddbd38fb 100644
@@ -70,10 +72,10 @@ index f6b4dd741..951133a83 100644
return out;
diff --git a/src/strace.c b/src/strace.c
-index 9cd4ff461..4403bd27e 100644
+index 9c87e34ed..13904f6e1 100644
--- a/src/strace.c
+++ b/src/strace.c
-@@ -2494,7 +2494,7 @@ init(int argc, char *argv[])
+@@ -2609,7 +2609,7 @@ init(int argc, char *argv[])
break;
case GETOPT_TS:
tflag_long_set = true;
@@ -82,7 +84,16 @@ index 9cd4ff461..4403bd27e 100644
error_opt_arg(c, lopt, optarg);
break;
case 'T':
-@@ -2614,10 +2614,10 @@ init(int argc, char *argv[])
+@@ -2683,7 +2683,7 @@ init(int argc, char *argv[])
+ error_opt_arg(c, lopt, optarg);
+ break;
+ case GETOPT_TIPS:
+- if (parse_tips_arg(optarg ?: ""))
++ if (parse_tips_arg(optarg ? optarg : ""))
+ error_opt_arg(c, lopt, optarg);
+ break;
+ case GETOPT_ARGV0:
+@@ -2729,10 +2729,10 @@ init(int argc, char *argv[])
qualify_kvm(optarg);
break;
case GETOPT_QUAL_QUIET:
@@ -95,6 +106,43 @@ index 9cd4ff461..4403bd27e 100644
break;
case GETOPT_QUAL_DECODE_PID:
qualify_decode_pid(optarg);
+diff --git a/src/strauss.c b/src/strauss.c
+index bec85021b..5d49f950a 100644
+--- a/src/strauss.c
++++ b/src/strauss.c
+@@ -367,6 +367,7 @@ print_totd(void)
+ struct timeval tv;
+ size_t id;
+ size_t i;
++ const char *tip;
+
+ if (printed || show_tips == TIPS_NONE)
+ return;
+@@ -386,9 +387,10 @@ print_totd(void)
+ for (i = 0; (i < MAX_TIP_LINES) && (tips_tricks_tweaks[id][i] ||
+ (i < (ARRAY_SIZE(tip_right) - 1)));
+ i++) {
++ tip = tips_tricks_tweaks[id][i];
+ fprintf(stderr, "%s%-*s%s%s\n",
+ tip_left[MIN(i + 1, ARRAY_SIZE(tip_left) - 1)],
+- w, tips_tricks_tweaks[id][i] ?: "",
++ w, tip ? tip : "",
+ tip_right[MIN(i + 1, ARRAY_SIZE(tip_right) - 1)],
+ strauss[MIN(3 + i, strauss_lines - 1)]);
+ }
+diff --git a/src/util.c b/src/util.c
+index efd390577..5e87559dc 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -640,7 +640,7 @@ printsocket(struct tcb *tcp, int fd, const char *path)
+ return false;
+
+ const char *details = get_sockaddr_by_inode(tcp, fd, inode);
+- print_string_in_angle_brackets(details ?: path);
++ print_string_in_angle_brackets(details ? details : path);
+
+ return true;
+ }
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch b/pkg/strace/patch/0008-Avoid-unnecessary-VLAs.patch
@@ -1,4 +1,4 @@
-From a98e58cc36d6df5935dbedd9e1c2947262b8b67c Mon Sep 17 00:00:00 2001
+From ab57c5ea74c7a1ced31c07bb62c43fc766811e01 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Sun, 7 Jul 2019 21:58:46 -0700
Subject: [PATCH] Avoid unnecessary VLAs
@@ -12,7 +12,7 @@ Subject: [PATCH] Avoid unnecessary VLAs
5 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/src/count.c b/src/count.c
-index e4f362787..ad203748b 100644
+index 2494a44d6..704e3a8d5 100644
--- a/src/count.c
+++ b/src/count.c
@@ -414,7 +414,7 @@ call_summary_pers(FILE *outf)
@@ -60,7 +60,7 @@ index d3a3b9283..e0079456f 100644
if (!inet_ntop(diag_msg->idiag_family, diag_msg->id.idiag_dst,
dst_buf, text_size))
diff --git a/src/syscall.c b/src/syscall.c
-index c636ba37c..687d08bc0 100644
+index 6d9e843fe..44d5e9e0b 100644
--- a/src/syscall.c
+++ b/src/syscall.c
@@ -287,7 +287,7 @@ decode_socket_subcall(struct tcb *tcp)
@@ -73,10 +73,10 @@ index c636ba37c..687d08bc0 100644
if (umoven(tcp, tcp->u_arg[1], nargs * current_wordsize, buf) < 0)
return;
diff --git a/src/util.c b/src/util.c
-index a63d80678..a3bea5b76 100644
+index efd390577..c9e0c6212 100644
--- a/src/util.c
+++ b/src/util.c
-@@ -556,8 +556,7 @@ enum sock_proto
+@@ -569,8 +569,7 @@ enum sock_proto
getfdproto(struct tcb *tcp, int fd)
{
#ifdef HAVE_SYS_XATTR_H
@@ -86,7 +86,7 @@ index a63d80678..a3bea5b76 100644
ssize_t r;
char path[sizeof("/proc/%u/fd/%u") + 2 * sizeof(int)*3];
-@@ -565,7 +564,7 @@ getfdproto(struct tcb *tcp, int fd)
+@@ -578,7 +577,7 @@ getfdproto(struct tcb *tcp, int fd)
return SOCK_PROTO_UNKNOWN;
xsprintf(path, "/proc/%u/fd/%u", get_proc_pid(tcp->pid), fd);
@@ -96,5 +96,5 @@ index a63d80678..a3bea5b76 100644
return SOCK_PROTO_UNKNOWN;
else {
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/patch/0011-Avoid-index-ranges.patch b/pkg/strace/patch/0011-Avoid-index-ranges.patch
@@ -1,4 +1,4 @@
-From d1c93514cb65877134e8f53b189adbcd5a0e1b43 Mon Sep 17 00:00:00 2001
+From b7f05e44f267fde2bc317a54430ec106d5af2808 Mon Sep 17 00:00:00 2001
From: Michael Forney <mforney@mforney.org>
Date: Thu, 30 Jan 2020 22:32:50 -0800
Subject: [PATCH] Avoid index ranges
@@ -33,10 +33,10 @@ index cad1013a8..73d7bbe28 100644
return sprint_mac_addr(hwaddr, MIN(size, sz));
diff --git a/src/util.c b/src/util.c
-index a3bea5b76..21fb9560f 100644
+index c9e0c6212..875c3ae9c 100644
--- a/src/util.c
+++ b/src/util.c
-@@ -1477,16 +1477,16 @@ dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
+@@ -1519,16 +1519,16 @@ dumpstr(struct tcb *const tcp, const kernel_ulong_t addr,
? 1 + ilog2_klong(len - 1) / HEX_BIT : DUMPSTR_OFFS_MIN_CHARS;
kernel_ulong_t i = 0;
const unsigned char *src;
@@ -58,5 +58,5 @@ index a3bea5b76..21fb9560f 100644
/* Fetching data from tracee. */
--
-2.37.3
+2.44.0
diff --git a/pkg/strace/sha256 b/pkg/strace/sha256
@@ -1 +1 @@
-27987dbac57fdfd260c6db4dc8328df35c95c6867c8a3d4371d59cdcf4eb9238 strace-6.4.tar.xz
+ba6950a96824cdf93a584fa04f0a733896d2a6bc5f0ad9ffe505d9b41e970149 strace-6.8.tar.xz
diff --git a/pkg/strace/url b/pkg/strace/url
@@ -1 +1 @@
-url = "https://github.com/strace/strace/releases/download/v6.4/strace-6.4.tar.xz"
+url = "https://github.com/strace/strace/releases/download/v6.8/strace-6.8.tar.xz"
diff --git a/pkg/strace/ver b/pkg/strace/ver
@@ -1 +1 @@
-6.4 r0
+6.8 r0