summaryrefslogtreecommitdiff
path: root/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch')
-rw-r--r--pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch b/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch
new file mode 100644
index 00000000..988d5926
--- /dev/null
+++ b/pkg/strace/patch/0005-Avoid-pointer-arithmetic-on-void.patch
@@ -0,0 +1,75 @@
+From c7a363f45bd223e49314945d4cfb385e39527682 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 *`
+
+---
+ netlink_smc_diag.c | 4 ++--
+ sockaddr.c | 2 +-
+ ucopy.c | 6 +++---
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/netlink_smc_diag.c b/netlink_smc_diag.c
+index 9255c0de..2ed39590 100644
+--- a/netlink_smc_diag.c
++++ b/netlink_smc_diag.c
+@@ -41,7 +41,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_req)
+ if (len >= sizeof(req)) {
+ if (!umoven_or_printaddr(tcp, addr + offset,
+ sizeof(req) - offset,
+- (void *) &req + offset)) {
++ (char *) &req + offset)) {
+ PRINT_FIELD_FLAGS("", req, diag_ext,
+ smc_diag_extended_flags,
+ "1<<SMC_DIAG_\?\?\?-1");
+@@ -212,7 +212,7 @@ DECL_NETLINK_DIAG_DECODER(decode_smc_diag_msg)
+ if (len >= sizeof(msg)) {
+ if (!umoven_or_printaddr(tcp, addr + offset,
+ sizeof(msg) - offset,
+- (void *) &msg + offset)) {
++ (char *) &msg + offset)) {
+ PRINT_FIELD_XVAL("", msg, diag_state,
+ smc_states, "SMC_???");
+ PRINT_FIELD_XVAL_INDEX(", ", msg, diag_fallback,
+diff --git a/sockaddr.c b/sockaddr.c
+index acba7f02..62f357f5 100644
+--- a/sockaddr.c
++++ b/sockaddr.c
+@@ -475,7 +475,7 @@ print_sockaddr_data_ll(const void *const buf, const int addrlen)
+ static void
+ print_sockaddr_data_raw(const void *const buf, const int addrlen)
+ {
+- const char *const data = buf + SIZEOF_SA_FAMILY;
++ const char *const data = (const char *)buf + SIZEOF_SA_FAMILY;
+ const int datalen = addrlen - SIZEOF_SA_FAMILY;
+
+ tprints("sa_data=");
+diff --git a/ucopy.c b/ucopy.c
+index 7db49c4a..f509b948 100644
+--- a/ucopy.c
++++ b/ucopy.c
+@@ -122,7 +122,7 @@ umoven_peekdata(const int pid, kernel_ulong_t addr, unsigned int len,
+ memcpy(laddr, &u.x[residue], m);
+ residue = 0;
+ addr += sizeof(long);
+- laddr += m;
++ laddr = (char *)laddr + m;
+ nread += m;
+ len -= m;
+ }
+@@ -218,10 +218,10 @@ umovestr_peekdata(const int pid, kernel_ulong_t addr, unsigned int len,
+ memcpy(laddr, &u.x[residue], m);
+ while (residue < sizeof(long))
+ if (u.x[residue++] == '\0')
+- return (laddr - orig_addr) + residue;
++ return nread + residue;
+ residue = 0;
+ addr += sizeof(long);
+- laddr += m;
++ laddr = (char *)laddr + m;
+ nread += m;
+ len -= m;
+ }
+--
+2.22.0
+