From 83c933be0fe191d4fec84306678143165df88063 Mon Sep 17 00:00:00 2001 From: Brendan Jones Date: Nov 19 2012 20:57:09 +0000 Subject: Add sigsegv handling patch. --- diff --git a/jack-audio-connection-kit-1.9.8-sigsegv-handling.patch b/jack-audio-connection-kit-1.9.8-sigsegv-handling.patch new file mode 100644 index 0000000..2045caf --- /dev/null +++ b/jack-audio-connection-kit-1.9.8-sigsegv-handling.patch @@ -0,0 +1,28 @@ +diff -Nurp jack-1.9.8.orig/dbus/sigsegv.c jack-1.9.8/dbus/sigsegv.c +--- jack-1.9.8.orig/dbus/sigsegv.c 2011-12-19 12:54:24.000000000 +0100 ++++ jack-1.9.8/dbus/sigsegv.c 2012-06-03 15:56:31.306697873 +0200 +@@ -60,6 +60,7 @@ static void signal_segv(int signum, sigi + static const char *si_codes[3] = {"", "SEGV_MAPERR", "SEGV_ACCERR"}; + + size_t i; ++ const char *si_code_str; + ucontext_t *ucontext = (ucontext_t*)ptr; + + #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64) +@@ -94,10 +95,14 @@ static void signal_segv(int signum, sigi + jack_error("Unknown bad signal catched!"); + } + +- jack_error("info.si_signo = %d", signum); ++ if (info->si_code >= 0 && info->si_code < 3) ++ si_code_str = si_codes[info->si_code]; ++ else ++ si_code_str = "unknown"; jack_error("info.si_signo = %d", signum); ++ + jack_error("info.si_errno = %d", info->si_errno); + jack_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]); +- jack_error("info.si_addr = %p", info->si_addr); ++ jack_error("info.si_code = %d (%s)", info->si_code, si_code_str); + #if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) + for(i = 0; i < NGREG; i++) + jack_error("reg[%02d] = 0x" REGFORMAT, i, diff --git a/jack-audio-connection-kit.spec b/jack-audio-connection-kit.spec index 0fac8a6..fc12b4f 100644 --- a/jack-audio-connection-kit.spec +++ b/jack-audio-connection-kit.spec @@ -31,6 +31,8 @@ Patch5: jack-fix-connect-segfault.patch Patch6: jack-ppc64-long.patch # uc_regs no longer available on ppc64 Patch7: jack-audio-connection-kit-ppc-uc_regs.patch +# correct sigsegv handling +Patch8: jack-audio-connection-kit-1.9.8-sigsegv-handling.patch BuildRequires: alsa-lib-devel BuildRequires: dbus-devel @@ -100,6 +102,7 @@ pushd jack-%{version} %patch5 -p1 -b .connectcrash %patch6 -p1 -b .mpd %patch7 -p1 -b .uc_regs +%patch8 -p1 -b .sigsegvfault # Fix encoding issues for file in ChangeLog README TODO; do