patch-2.0.28 linux/arch/i386/kernel/signal.c
Next file: linux/arch/i386/kernel/traps.c
Previous file: linux/arch/i386/kernel/ldt.c
Back to the patch index
Back to the overall index
- Lines: 21
- Date:
Wed Dec 11 16:41:01 1996
- Orig file:
v2.0.27/linux/arch/i386/kernel/signal.c
- Orig date:
Tue Jul 2 19:08:34 1996
diff -u --recursive --new-file v2.0.27/linux/arch/i386/kernel/signal.c linux/arch/i386/kernel/signal.c
@@ -81,7 +81,10 @@
{
#define COPY(x) regs->x = context.x
#define COPY_SEG(x) \
-if ((context.x & 0xfffc) && (context.x & 3) != 3) goto badframe; COPY(x);
+if ( (context.x & 0xfffc) /* not a NULL selectors */ \
+ && (context.x & 0x4) != 0x4 /* not a LDT selector */ \
+ && (context.x & 3) != 3 /* not a RPL3 GDT selector */ \
+ ) goto badframe; COPY(x);
#define COPY_SEG_STRICT(x) \
if (!(context.x & 0xfffc) || (context.x & 3) != 3) goto badframe; COPY(x);
struct sigcontext_struct context;
@@ -273,7 +276,7 @@
* including volatiles for the inline function to get
* current combined with this gets it confused.
*/
- struct task_struct *t=current;
+ struct task_struct *t=current;
__asm__("bsf %3,%1\n\t"
"btrl %1,%0"
:"=m" (t->signal),"=r" (signr)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov