Source: libunwind
Version: 1.2.1-9
Severity: grave
Tags: patch
Justification: renders package unusable

Dear Maintainer,

   * What led up to the situation?
     I was running i-g-t on MIPS and hit a segfault during a stack
     trace dump.

     I then built the package from source to reproduce it, and found a
     fix upstream for it (patch attached).

     Discussion on the igt-dev mailing list: 
https://lists.freedesktop.org/archives/igt-dev/2019-July/015029.html


-- System Information:
Debian Release: 10.0
  APT prefers stable
  APT policy: (500, 'stable'), (500, 'oldstable')
Architecture: mips

Kernel: Linux 4.19.0-5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: unable to detect

>From 23ed1a35645e9e83beb2d4de0bd682c18d9fd58f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=9A=D0=BE=D1=80=D0=BE=D0=BB=D0=B5=D0=B2=20=D0=A1=D0=B5?=
 =?UTF-8?q?=D1=80=D0=B3=D0=B5=D0=B9?= <korolev.ser...@gmail.com>
Date: Wed, 22 Jun 2016 19:53:02 +0300
Subject: [PATCH] tdep_uc_addr: use +4 offset for UNW_MIPS_PC on MIPS (be)

According to mcontext_t definition its "pc" field
is also 64 bit wide and thus requires 4 byte offset
on MIPS32 (be).
---
 src/mips/Ginit.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mips/Ginit.c b/src/mips/Ginit.c
index 8290c408..83b100fb 100644
--- a/src/mips/Ginit.c
+++ b/src/mips/Ginit.c
@@ -59,7 +59,7 @@ tdep_uc_addr (ucontext_t *uc, int reg)
 {
   char *addr = uc_addr (uc, reg);
 
-  if (reg >= UNW_MIPS_R0 && reg <= UNW_MIPS_R31
+  if (((reg >= UNW_MIPS_R0 && reg <= UNW_MIPS_R31) || reg == UNW_MIPS_PC)
       && tdep_big_endian (unw_local_addr_space)
       && unw_local_addr_space->abi == UNW_MIPS_ABI_O32)
     addr += 4;
-- 
2.20.1


Reply via email to