signal: Fix use of missing sa_restorer field (build regression introduced by fix for CVE-2013-0914)
svn path=/dists/sid/linux/; revision=19926
This commit is contained in:
parent
1df6e18669
commit
da9962ab5f
|
@ -105,6 +105,8 @@ linux (3.2.41-1) UNRELEASED; urgency=low
|
|||
- drm: don't add inferred modes for monitors that don't support them
|
||||
- drm/i915: EBUSY status handling added to i915_gem_fault().
|
||||
- drm/i915: Increase the RC6p threshold.
|
||||
* signal: Fix use of missing sa_restorer field (build regression
|
||||
introduced by fix for CVE-2013-0914)
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Wed, 27 Feb 2013 03:48:30 +0000
|
||||
|
||||
|
|
36
debian/patches/bugfix/all/kernel-signal.c-use-__ARCH_HAS_SA_RESTORER-instead-o.patch
vendored
Normal file
36
debian/patches/bugfix/all/kernel-signal.c-use-__ARCH_HAS_SA_RESTORER-instead-o.patch
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
From: Andrew Morton <akpm@linux-foundation.org>
|
||||
Date: Wed, 13 Mar 2013 14:59:34 -0700
|
||||
Subject: kernel/signal.c: use __ARCH_HAS_SA_RESTORER instead of SA_RESTORER
|
||||
|
||||
commit 522cff142d7d2f9230839c9e1f21a4d8bcc22a4a upstream.
|
||||
|
||||
__ARCH_HAS_SA_RESTORER is the preferred conditional for use in 3.9 and
|
||||
later kernels, per Kees.
|
||||
|
||||
Cc: Emese Revfy <re.emese@gmail.com>
|
||||
Cc: Emese Revfy <re.emese@gmail.com>
|
||||
Cc: PaX Team <pageexec@freemail.hu>
|
||||
Cc: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Cc: Oleg Nesterov <oleg@redhat.com>
|
||||
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
|
||||
Cc: Serge Hallyn <serge.hallyn@canonical.com>
|
||||
Cc: Julien Tinnes <jln@google.com>
|
||||
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
kernel/signal.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/kernel/signal.c b/kernel/signal.c
|
||||
index 43b0d4a..dd72567 100644
|
||||
--- a/kernel/signal.c
|
||||
+++ b/kernel/signal.c
|
||||
@@ -485,7 +485,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
|
||||
if (force_default || ka->sa.sa_handler != SIG_IGN)
|
||||
ka->sa.sa_handler = SIG_DFL;
|
||||
ka->sa.sa_flags = 0;
|
||||
-#ifdef SA_RESTORER
|
||||
+#ifdef __ARCH_HAS_SA_RESTORER
|
||||
ka->sa.sa_restorer = NULL;
|
||||
#endif
|
||||
sigemptyset(&ka->sa.sa_mask);
|
148
debian/patches/bugfix/all/signal-fix-use-of-missing-sa_restorer-field.patch
vendored
Normal file
148
debian/patches/bugfix/all/signal-fix-use-of-missing-sa_restorer-field.patch
vendored
Normal file
|
@ -0,0 +1,148 @@
|
|||
From: Ben Hutchings <ben@decadent.org.uk>
|
||||
Date: Sun, 25 Nov 2012 22:24:19 -0500
|
||||
Subject: signal: Fix use of missing sa_restorer field
|
||||
|
||||
flush_signal_handlers() needs to know whether sigaction::sa_restorer
|
||||
is defined, not whether SA_RESTORER is defined. Define the
|
||||
__ARCH_HAS_SA_RESTORER macro to indicate this.
|
||||
|
||||
Vaguely based on upstream commit 574c4866e33d 'consolidate kernel-side
|
||||
struct sigaction declarations'.
|
||||
|
||||
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
|
||||
Cc: Al Viro <viro@zeniv.linux.org.uk>
|
||||
---
|
||||
--- a/arch/arm/include/asm/signal.h
|
||||
+++ b/arch/arm/include/asm/signal.h
|
||||
@@ -127,6 +127,7 @@ struct sigaction {
|
||||
__sigrestore_t sa_restorer;
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/avr32/include/asm/signal.h
|
||||
+++ b/arch/avr32/include/asm/signal.h
|
||||
@@ -128,6 +128,7 @@ struct sigaction {
|
||||
__sigrestore_t sa_restorer;
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/cris/include/asm/signal.h
|
||||
+++ b/arch/cris/include/asm/signal.h
|
||||
@@ -122,6 +122,7 @@ struct sigaction {
|
||||
void (*sa_restorer)(void);
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/h8300/include/asm/signal.h
|
||||
+++ b/arch/h8300/include/asm/signal.h
|
||||
@@ -121,6 +121,7 @@ struct sigaction {
|
||||
void (*sa_restorer)(void);
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/m32r/include/asm/signal.h
|
||||
+++ b/arch/m32r/include/asm/signal.h
|
||||
@@ -123,6 +123,7 @@ struct sigaction {
|
||||
__sigrestore_t sa_restorer;
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/m68k/include/asm/signal.h
|
||||
+++ b/arch/m68k/include/asm/signal.h
|
||||
@@ -119,6 +119,7 @@ struct sigaction {
|
||||
__sigrestore_t sa_restorer;
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/mn10300/include/asm/signal.h
|
||||
+++ b/arch/mn10300/include/asm/signal.h
|
||||
@@ -131,6 +131,7 @@ struct sigaction {
|
||||
__sigrestore_t sa_restorer;
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/powerpc/include/asm/signal.h
|
||||
+++ b/arch/powerpc/include/asm/signal.h
|
||||
@@ -109,6 +109,7 @@ struct sigaction {
|
||||
__sigrestore_t sa_restorer;
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/s390/include/asm/signal.h
|
||||
+++ b/arch/s390/include/asm/signal.h
|
||||
@@ -131,6 +131,7 @@ struct sigaction {
|
||||
void (*sa_restorer)(void);
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/arch/sparc/include/asm/signal.h
|
||||
+++ b/arch/sparc/include/asm/signal.h
|
||||
@@ -191,6 +191,7 @@ struct __old_sigaction {
|
||||
unsigned long sa_flags;
|
||||
void (*sa_restorer)(void); /* not used by Linux/SPARC yet */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
typedef struct sigaltstack {
|
||||
void __user *ss_sp;
|
||||
--- a/arch/x86/include/asm/signal.h
|
||||
+++ b/arch/x86/include/asm/signal.h
|
||||
@@ -125,6 +125,8 @@ typedef unsigned long sigset_t;
|
||||
extern void do_notify_resume(struct pt_regs *, void *, __u32);
|
||||
# endif /* __KERNEL__ */
|
||||
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
+
|
||||
#ifdef __i386__
|
||||
# ifdef __KERNEL__
|
||||
struct old_sigaction {
|
||||
--- a/arch/xtensa/include/asm/signal.h
|
||||
+++ b/arch/xtensa/include/asm/signal.h
|
||||
@@ -133,6 +133,7 @@ struct sigaction {
|
||||
void (*sa_restorer)(void);
|
||||
sigset_t sa_mask; /* mask last for extensibility */
|
||||
};
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
|
||||
struct k_sigaction {
|
||||
struct sigaction sa;
|
||||
--- a/include/asm-generic/signal.h
|
||||
+++ b/include/asm-generic/signal.h
|
||||
@@ -99,6 +99,10 @@ typedef unsigned long old_sigset_t;
|
||||
|
||||
#include <asm-generic/signal-defs.h>
|
||||
|
||||
+#ifdef SA_RESTORER
|
||||
+#define __ARCH_HAS_SA_RESTORER
|
||||
+#endif
|
||||
+
|
||||
struct sigaction {
|
||||
__sighandler_t sa_handler;
|
||||
unsigned long sa_flags;
|
|
@ -617,3 +617,5 @@ debian/efi-autoload-efivars.patch
|
|||
bugfix/all/kexec-remove-KMSG_DUMP_KEXEC.patch
|
||||
bugfix/all/kmsg_dump-don-t-run-on-non-error-paths-by-default.patch
|
||||
bugfix/all/i915-initialize-CADL-in-opregion.patch
|
||||
bugfix/all/signal-fix-use-of-missing-sa_restorer-field.patch
|
||||
bugfix/all/kernel-signal.c-use-__ARCH_HAS_SA_RESTORER-instead-o.patch
|
||||
|
|
Loading…
Reference in New Issue