patch-2.1.15 linux/arch/i386/kernel/signal.c
Next file: linux/arch/i386/kernel/smp.c
Previous file: linux/arch/i386/kernel/setup.c
Back to the patch index
Back to the overall index
- Lines: 24
- Date:
Wed Dec 11 16:41:23 1996
- Orig file:
v2.1.14/linux/arch/i386/kernel/signal.c
- Orig date:
Tue Oct 29 19:58:02 1996
diff -u --recursive --new-file v2.1.14/linux/arch/i386/kernel/signal.c linux/arch/i386/kernel/signal.c
@@ -82,7 +82,10 @@
#define COPY(x) regs->x = context->x
#define COPY_SEG(seg) \
{ unsigned int tmp = context->seg; \
-if ((tmp & 0xfffc) && (tmp & 3) != 3) goto badframe; \
+if ( (tmp & 0xfffc) /* not a NULL selectors */ \
+ && (tmp & 0x4) != 0x4 /* not a LDT selector */ \
+ && (tmp & 3) != 3 /* not a RPL3 GDT selector */ \
+ ) goto badframe; \
regs->x##seg = tmp; }
#define COPY_SEG_STRICT(seg) \
{ unsigned int tmp = context->seg; \
@@ -90,7 +93,10 @@
regs->x##seg = tmp; }
#define GET_SEG(seg) \
{ unsigned int tmp = context->seg; \
-if ((tmp & 0xfffc) && (tmp & 3) != 3) goto badframe; \
+if ( (tmp & 0xfffc) /* not a NULL selectors */ \
+ && (tmp & 0x4) != 0x4 /* not a LDT selector */ \
+ && (tmp & 3) != 3 /* not a RPL3 GDT selector */ \
+ ) goto badframe; \
__asm__("mov %w0,%%" #seg: :"r" (tmp)); }
struct sigcontext * context;
struct pt_regs * regs;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov