diff -Nru jackd2-1.9.8~dfsg.1/debian/changelog jackd2-1.9.8~dfsg.1/debian/changelog --- jackd2-1.9.8~dfsg.1/debian/changelog 2012-02-10 15:49:24.000000000 +0100 +++ jackd2-1.9.8~dfsg.1/debian/changelog 2012-04-19 11:28:45.000000000 +0200 @@ -1,3 +1,10 @@ +jackd2 (1.9.8~dfsg.1-1ubuntu2) precise; urgency=low + + * Add patch to fix jackdbus segfaulting while handling + signals (LP: #983835) + + -- David Henningsson Thu, 19 Apr 2012 11:27:10 +0200 + jackd2 (1.9.8~dfsg.1-1ubuntu1) precise; urgency=low * Merge from debian unstable (LP: #911342), remaining changes: diff -Nru jackd2-1.9.8~dfsg.1/debian/patches/0001-jackdbus-Fix-sigsegv-handling-segfaulting-by-itself.patch jackd2-1.9.8~dfsg.1/debian/patches/0001-jackdbus-Fix-sigsegv-handling-segfaulting-by-itself.patch --- jackd2-1.9.8~dfsg.1/debian/patches/0001-jackdbus-Fix-sigsegv-handling-segfaulting-by-itself.patch 1970-01-01 01:00:00.000000000 +0100 +++ jackd2-1.9.8~dfsg.1/debian/patches/0001-jackdbus-Fix-sigsegv-handling-segfaulting-by-itself.patch 2012-04-19 11:26:58.000000000 +0200 @@ -0,0 +1,45 @@ +From f82ec71566b2c18f159004e00a70c2cf3e46d755 Mon Sep 17 00:00:00 2001 +From: David Henningsson +Date: Tue, 17 Apr 2012 12:33:21 +0200 +Subject: [PATCH 1/2] jackdbus: Fix sigsegv handling segfaulting by itself + +In my case, the siginfo code was -6, causing the sigsegv handling +to crash on its own. This patch adds a range check for siginfo code. + +BugLink: https://bugs.launchpad.net/bugs/983835 +Signed-off-by: David Henningsson +--- + dbus/sigsegv.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/dbus/sigsegv.c b/dbus/sigsegv.c +index 03b1183..8a87dc8 100644 +--- a/dbus/sigsegv.c ++++ b/dbus/sigsegv.c +@@ -60,6 +60,7 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { + 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,9 +95,14 @@ static void signal_segv(int signum, siginfo_t* info, void*ptr) { + jack_error("Unknown bad signal catched!"); + } + ++ 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_code = %d (%s)", info->si_code, si_code_str); + jack_error("info.si_addr = %p", info->si_addr); + #if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) + for(i = 0; i < NGREG; i++) +-- +1.7.9.5 + diff -Nru jackd2-1.9.8~dfsg.1/debian/patches/series jackd2-1.9.8~dfsg.1/debian/patches/series --- jackd2-1.9.8~dfsg.1/debian/patches/series 2012-01-18 12:54:28.000000000 +0100 +++ jackd2-1.9.8~dfsg.1/debian/patches/series 2012-04-19 11:26:58.000000000 +0200 @@ -2,3 +2,4 @@ hurd.patch no-selfconnect.patch netjack-kfreebsd.patch +0001-jackdbus-Fix-sigsegv-handling-segfaulting-by-itself.patch