summaryrefslogtreecommitdiff
path: root/dev-util/rr/files/rr-5.6.0-linux-headers-6.0.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/rr/files/rr-5.6.0-linux-headers-6.0.patch')
-rw-r--r--dev-util/rr/files/rr-5.6.0-linux-headers-6.0.patch62
1 files changed, 0 insertions, 62 deletions
diff --git a/dev-util/rr/files/rr-5.6.0-linux-headers-6.0.patch b/dev-util/rr/files/rr-5.6.0-linux-headers-6.0.patch
deleted file mode 100644
index 36a911bcbece..000000000000
--- a/dev-util/rr/files/rr-5.6.0-linux-headers-6.0.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-https://github.com/rr-debugger/rr/commit/2979c60ef8bbf7c940afd90172ddc5d8863f766e
-https://github.com/rr-debugger/rr/issues/3369
-https://bugs.gentoo.org/877157
-
-From 2979c60ef8bbf7c940afd90172ddc5d8863f766e Mon Sep 17 00:00:00 2001
-From: Robert O'Callahan <robert@ocallahan.org>
-Date: Thu, 25 Aug 2022 20:40:59 +1200
-Subject: [PATCH] Avoid creating a struct with elements after
- ethtool_sset_info's variable-length-array.
-
-Resolves #3369
---- a/src/record_syscall.cc
-+++ b/src/record_syscall.cc
-@@ -1450,17 +1450,17 @@ template <typename Arch> void get_ethtool_gstrings_arch(RecordTask* t) {
- AutoRemoteSyscalls remote(t);
-
- // Do a ETHTOOL_GSSET_INFO to get the number of strings
-- struct SingleStringSet {
-- ethtool_sset_info et;
-- uint32_t data;
-- };
-- SingleStringSet sss;
-- sss.et.cmd = ETHTOOL_GSSET_INFO;
-- sss.et.reserved = 0;
-- sss.et.sset_mask = 1 << et_gstrings.string_set;
-- AutoRestoreMem sss_mem(remote, &sss, sizeof(sss));
--
-- ifreq.ifr_ifru.ifru_data = sss_mem.get();
-+ ethtool_sset_info et;
-+ et.cmd = ETHTOOL_GSSET_INFO;
-+ et.reserved = 0;
-+ et.sset_mask = 1 << et_gstrings.string_set;
-+ std::vector<uint8_t> buffer;
-+ buffer.resize(sizeof(et) + sizeof(uint32_t));
-+ memcpy(buffer.data(), &et, sizeof(et));
-+ memset(buffer.data() + sizeof(et), 0, sizeof(uint32_t));
-+ AutoRestoreMem et_mem(remote, buffer.data(), buffer.size());
-+
-+ ifreq.ifr_ifru.ifru_data = et_mem.get();
- AutoRestoreMem ifr_mem(remote, &ifreq, sizeof(ifreq));
-
- long ret = remote.syscall(regs.original_syscallno(), regs.arg1(),
-@@ -1470,8 +1470,7 @@ template <typename Arch> void get_ethtool_gstrings_arch(RecordTask* t) {
- return;
- }
-
-- sss = t->read_mem(sss_mem.get().cast<SingleStringSet>());
--
-+ uint32_t data = t->read_mem((et_mem.get() + sizeof(et)).cast<uint32_t>());
- // Now do the ETHTOOL_GSTRINGS call
- ret = remote.syscall(regs.original_syscallno(), regs.arg1(), SIOCETHTOOL,
- regs.arg3());
-@@ -1479,7 +1478,7 @@ template <typename Arch> void get_ethtool_gstrings_arch(RecordTask* t) {
- if (ret < 0) {
- return;
- }
-- t->record_remote(orig_gstrings, sizeof(ethtool_gstrings) + ETH_GSTRING_LEN*sss.data);
-+ t->record_remote(orig_gstrings, sizeof(ethtool_gstrings) + ETH_GSTRING_LEN*data);
- }
-
- static void get_ethtool_gstrings(RecordTask* t) {
-