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