Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rr for openSUSE:Factory checked in 
at 2022-11-01 13:42:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rr (Old)
 and      /work/SRC/openSUSE:Factory/.rr.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rr"

Tue Nov  1 13:42:34 2022 rev:4 rq:1032539 version:5.6.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rr/rr.changes    2022-08-16 17:08:06.235942733 
+0200
+++ /work/SRC/openSUSE:Factory/.rr.new.2275/rr.changes  2022-11-01 
13:42:41.735936738 +0100
@@ -1,0 +2,6 @@
+Mon Oct 31 14:09:34 UTC 2022 - Dominique Leuenberger <dims...@opensuse.org>
+
+- Add 2979c60e.patch: Avoid creating a struct with elements after
+  ethtool_sset_info's variable-length-array.
+
+-------------------------------------------------------------------

New:
----
  2979c60e.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rr.spec ++++++
--- /var/tmp/diff_new_pack.Wc96V8/_old  2022-11-01 13:42:42.115938759 +0100
+++ /var/tmp/diff_new_pack.Wc96V8/_new  2022-11-01 13:42:42.119938780 +0100
@@ -24,6 +24,7 @@
 Group:          Development/Languages/C and C++
 URL:            https://rr-project.org/
 Source:         https://github.com/mozilla/%{name}/archive/%{version}.tar.gz
+Patch0:         https://github.com/rr-debugger/rr/commit/2979c60e.patch
 BuildRequires:  capnproto
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
@@ -46,7 +47,7 @@
 data watchpoints and quickly reverse-execute to where they were hit.
 
 %prep
-%setup -q
+%autosetup -p1
 
 %build
 # Fix incorrect path to bash

++++++ 2979c60e.patch ++++++
>From 2979c60ef8bbf7c940afd90172ddc5d8863f766e Mon Sep 17 00:00:00 2001
From: Robert O'Callahan <rob...@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
---
 src/record_syscall.cc | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/record_syscall.cc b/src/record_syscall.cc
index 2e4cdec35..48544e1df 100644
--- 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) {

Reply via email to