SOURCES (LINUX_2_6): grsecurity-2.1.9-2.6.17.11.patch - ready for ...
zbyniu
zbyniu at pld-linux.org
Mon Sep 4 22:59:13 CEST 2006
Author: zbyniu Date: Mon Sep 4 20:59:13 2006 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- ready for our kernel
---- Files affected:
SOURCES:
grsecurity-2.1.9-2.6.17.11.patch (1.1 -> 1.1.2.1)
---- Diffs:
================================================================
Index: SOURCES/grsecurity-2.1.9-2.6.17.11.patch
diff -u SOURCES/grsecurity-2.1.9-2.6.17.11.patch:1.1 SOURCES/grsecurity-2.1.9-2.6.17.11.patch:1.1.2.1
--- SOURCES/grsecurity-2.1.9-2.6.17.11.patch:1.1 Wed Aug 30 14:05:11 2006
+++ SOURCES/grsecurity-2.1.9-2.6.17.11.patch Mon Sep 4 22:59:08 2006
@@ -1,6 +1,6 @@
diff -urNp linux-2.6.17.11/arch/alpha/kernel/module.c linux-2.6.17.11/arch/alpha/kernel/module.c
--- linux-2.6.17.11/arch/alpha/kernel/module.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/alpha/kernel/module.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/alpha/kernel/module.c 2006-09-01 16:20:28.000000000 -0400
@@ -177,7 +177,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs,
/* The small sections were sorted to the end of the segment.
@@ -12,8 +12,8 @@
for (i = 0; i < n; i++) {
diff -urNp linux-2.6.17.11/arch/alpha/kernel/osf_sys.c linux-2.6.17.11/arch/alpha/kernel/osf_sys.c
--- linux-2.6.17.11/arch/alpha/kernel/osf_sys.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/alpha/kernel/osf_sys.c 2006-08-12 08:17:55.000000000 -0400
-@@ -1273,6 +1273,10 @@ arch_get_unmapped_area(struct file *filp
++++ linux-2.6.17.11/arch/alpha/kernel/osf_sys.c 2006-09-01 16:20:28.000000000 -0400
+@@ -1278,6 +1278,10 @@ arch_get_unmapped_area(struct file *filp
merely specific addresses, but regions of memory -- perhaps
this feature should be incorporated into all ports? */
@@ -24,7 +24,7 @@
if (addr) {
addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
if (addr != (unsigned long) -ENOMEM)
-@@ -1280,8 +1284,8 @@ arch_get_unmapped_area(struct file *filp
+@@ -1285,8 +1289,8 @@ arch_get_unmapped_area(struct file *filp
}
/* Next, try allocating at TASK_UNMAPPED_BASE. */
@@ -37,8 +37,8 @@
diff -urNp linux-2.6.17.11/arch/alpha/kernel/ptrace.c linux-2.6.17.11/arch/alpha/kernel/ptrace.c
--- linux-2.6.17.11/arch/alpha/kernel/ptrace.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/alpha/kernel/ptrace.c 2006-08-12 08:17:55.000000000 -0400
-@@ -15,6 +15,7 @@
++++ linux-2.6.17.11/arch/alpha/kernel/ptrace.c 2006-09-01 16:20:28.000000000 -0400
+@@ -16,6 +16,7 @@
#include <linux/security.h>
#include <linux/signal.h>
#include <linux/vs_pid.h>
@@ -46,8 +46,8 @@
#include <asm/uaccess.h>
#include <asm/pgtable.h>
-@@ -283,6 +284,9 @@ do_sys_ptrace(long request, long pid, lo
- goto out_notsk;
+@@ -289,6 +290,9 @@ do_sys_ptrace(long request, long pid, lo
+ goto out;
}
+ if (gr_handle_ptrace(child, request))
@@ -58,7 +58,7 @@
goto out;
diff -urNp linux-2.6.17.11/arch/alpha/mm/fault.c linux-2.6.17.11/arch/alpha/mm/fault.c
--- linux-2.6.17.11/arch/alpha/mm/fault.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/alpha/mm/fault.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/alpha/mm/fault.c 2006-09-01 16:20:28.000000000 -0400
@@ -25,6 +25,7 @@
#include <linux/smp_lock.h>
#include <linux/interrupt.h>
@@ -225,7 +225,7 @@
if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
diff -urNp linux-2.6.17.11/arch/arm/mm/mmap.c linux-2.6.17.11/arch/arm/mm/mmap.c
--- linux-2.6.17.11/arch/arm/mm/mmap.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/arm/mm/mmap.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/arm/mm/mmap.c 2006-09-01 16:20:28.000000000 -0400
@@ -62,6 +62,10 @@ arch_get_unmapped_area(struct file *filp
if (len > TASK_SIZE)
return -ENOMEM;
@@ -259,7 +259,7 @@
}
diff -urNp linux-2.6.17.11/arch/i386/boot/compressed/head.S linux-2.6.17.11/arch/i386/boot/compressed/head.S
--- linux-2.6.17.11/arch/i386/boot/compressed/head.S 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/boot/compressed/head.S 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/boot/compressed/head.S 2006-09-01 16:20:28.000000000 -0400
@@ -39,11 +39,13 @@ startup_32:
movl %eax,%gs
@@ -276,7 +276,7 @@
* Initialize eflags. Some BIOS's leave bits like NT set. This would
diff -urNp linux-2.6.17.11/arch/i386/Kconfig linux-2.6.17.11/arch/i386/Kconfig
--- linux-2.6.17.11/arch/i386/Kconfig 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/Kconfig 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/Kconfig 2006-09-01 16:20:28.000000000 -0400
@@ -948,7 +948,7 @@ config PCI
choice
prompt "PCI access mode"
@@ -297,7 +297,7 @@
config PCI_DIRECT
diff -urNp linux-2.6.17.11/arch/i386/Kconfig.cpu linux-2.6.17.11/arch/i386/Kconfig.cpu
--- linux-2.6.17.11/arch/i386/Kconfig.cpu 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/Kconfig.cpu 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/Kconfig.cpu 2006-09-01 16:20:28.000000000 -0400
@@ -251,7 +251,7 @@ config X86_PPRO_FENCE
config X86_F00F_BUG
@@ -318,7 +318,7 @@
config X86_GOOD_APIC
diff -urNp linux-2.6.17.11/arch/i386/Kconfig.debug linux-2.6.17.11/arch/i386/Kconfig.debug
--- linux-2.6.17.11/arch/i386/Kconfig.debug 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/Kconfig.debug 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/Kconfig.debug 2006-09-01 16:20:28.000000000 -0400
@@ -53,7 +53,7 @@ config DEBUG_PAGEALLOC
config DEBUG_RODATA
@@ -330,7 +330,7 @@
in order to catch accidental (and incorrect) writes to such const
diff -urNp linux-2.6.17.11/arch/i386/kernel/acpi/sleep.c linux-2.6.17.11/arch/i386/kernel/acpi/sleep.c
--- linux-2.6.17.11/arch/i386/kernel/acpi/sleep.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/acpi/sleep.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/acpi/sleep.c 2006-09-01 16:20:28.000000000 -0400
@@ -10,6 +10,7 @@
#include <linux/dmi.h>
#include <asm/smp.h>
@@ -383,7 +383,7 @@
/**
diff -urNp linux-2.6.17.11/arch/i386/kernel/alternative.c linux-2.6.17.11/arch/i386/kernel/alternative.c
--- linux-2.6.17.11/arch/i386/kernel/alternative.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/alternative.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/alternative.c 2006-09-01 16:20:28.000000000 -0400
@@ -3,6 +3,7 @@
#include <linux/list.h>
#include <asm/alternative.h>
@@ -537,7 +537,7 @@
struct smp_alt_module {
diff -urNp linux-2.6.17.11/arch/i386/kernel/apic.c linux-2.6.17.11/arch/i386/kernel/apic.c
--- linux-2.6.17.11/arch/i386/kernel/apic.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/apic.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/apic.c 2006-09-01 16:20:28.000000000 -0400
@@ -1176,7 +1176,7 @@ inline void smp_local_timer_interrupt(st
{
profile_tick(CPU_PROFILING, regs);
@@ -549,7 +549,7 @@
/*
diff -urNp linux-2.6.17.11/arch/i386/kernel/apm.c linux-2.6.17.11/arch/i386/kernel/apm.c
--- linux-2.6.17.11/arch/i386/kernel/apm.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/apm.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/apm.c 2006-09-01 16:20:28.000000000 -0400
@@ -235,7 +235,7 @@
#include "io_ports.h"
@@ -632,7 +632,7 @@
0xbc, 0x00, 0xf0, /* movw $0xf000,sp */
diff -urNp linux-2.6.17.11/arch/i386/kernel/asm-offsets.c linux-2.6.17.11/arch/i386/kernel/asm-offsets.c
--- linux-2.6.17.11/arch/i386/kernel/asm-offsets.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/asm-offsets.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/asm-offsets.c 2006-09-01 16:20:28.000000000 -0400
@@ -68,5 +68,6 @@ void foo(void)
sizeof(struct tss_struct));
@@ -642,7 +642,7 @@
}
diff -urNp linux-2.6.17.11/arch/i386/kernel/cpu/common.c linux-2.6.17.11/arch/i386/kernel/cpu/common.c
--- linux-2.6.17.11/arch/i386/kernel/cpu/common.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/cpu/common.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/cpu/common.c 2006-09-01 16:20:28.000000000 -0400
@@ -4,7 +4,6 @@
#include <linux/smp.h>
#include <linux/module.h>
@@ -753,7 +753,7 @@
set_debugreg(0, 0);
diff -urNp linux-2.6.17.11/arch/i386/kernel/crash.c linux-2.6.17.11/arch/i386/kernel/crash.c
--- linux-2.6.17.11/arch/i386/kernel/crash.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/crash.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/crash.c 2006-09-01 16:20:28.000000000 -0400
@@ -105,7 +105,7 @@ static int crash_nmi_callback(struct pt_
return 1;
local_irq_disable();
@@ -765,7 +765,7 @@
}
diff -urNp linux-2.6.17.11/arch/i386/kernel/doublefault.c linux-2.6.17.11/arch/i386/kernel/doublefault.c
--- linux-2.6.17.11/arch/i386/kernel/doublefault.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/doublefault.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/doublefault.c 2006-09-01 16:20:28.000000000 -0400
@@ -11,7 +11,7 @@
#define DOUBLEFAULT_STACKSIZE (1024)
@@ -790,7 +790,7 @@
};
diff -urNp linux-2.6.17.11/arch/i386/kernel/efi.c linux-2.6.17.11/arch/i386/kernel/efi.c
--- linux-2.6.17.11/arch/i386/kernel/efi.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/efi.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/efi.c 2006-09-01 16:20:28.000000000 -0400
@@ -64,82 +64,43 @@ extern void * boot_ioremap(unsigned long
static unsigned long efi_rt_eflags;
@@ -899,7 +899,7 @@
efi_status_t status;
diff -urNp linux-2.6.17.11/arch/i386/kernel/efi_stub.S linux-2.6.17.11/arch/i386/kernel/efi_stub.S
--- linux-2.6.17.11/arch/i386/kernel/efi_stub.S 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/efi_stub.S 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/efi_stub.S 2006-09-01 16:20:28.000000000 -0400
@@ -7,6 +7,7 @@
#include <linux/config.h>
@@ -1004,7 +1004,7 @@
efi_rt_function_ptr:
diff -urNp linux-2.6.17.11/arch/i386/kernel/entry.S linux-2.6.17.11/arch/i386/kernel/entry.S
--- linux-2.6.17.11/arch/i386/kernel/entry.S 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/entry.S 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/entry.S 2006-09-01 16:20:28.000000000 -0400
@@ -82,7 +82,7 @@ VM_MASK = 0x00020000
#define resume_kernel restore_nocheck
#endif
@@ -1200,7 +1200,7 @@
syscall_table_size=(.-sys_call_table)
diff -urNp linux-2.6.17.11/arch/i386/kernel/head.S linux-2.6.17.11/arch/i386/kernel/head.S
--- linux-2.6.17.11/arch/i386/kernel/head.S 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/head.S 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/head.S 2006-09-01 16:20:31.000000000 -0400
@@ -46,6 +46,16 @@
*/
#define INIT_MAP_BEYOND_END (128*1024)
@@ -1379,44 +1379,18 @@
movl %eax,%ds
movl %eax,%es
-@@ -378,13 +426,35 @@ rp_sidt:
- addl $8,%edi
- dec %ecx
- jne rp_sidt
-+
-+ lea ignore_int_error_code,%edx
-+ movw %dx,%ax /* selector = 0x0010 = cs */
-+ movw $0x8E00,%dx /* interrupt gate - dpl=0, present */
-+
-+ lea idt_table,%edi
-+ movl %eax,8*8(%edi)
-+ movl %edx,8*8+4(%edi)
-+ movl %eax,10*8(%edi)
-+ movl %edx,10*8+4(%edi)
-+ movl %eax,11*8(%edi)
-+ movl %edx,11*8+4(%edi)
-+ movl %eax,12*8(%edi)
-+ movl %edx,12*8+4(%edi)
-+ movl %eax,13*8(%edi)
-+ movl %edx,13*8+4(%edi)
-+ movl %eax,14*8(%edi)
-+ movl %edx,14*8+4(%edi)
-+ movl %eax,17*8(%edi)
-+ movl %edx,17*8+4(%edi)
- ret
-
+@@ -383,63 +431,71 @@ rp_sidt:
/* This is the default interrupt "handler" :-) */
ALIGN
-+ignore_int_error_code:
-+ addl $4,%esp
ignore_int:
- cld
#ifdef CONFIG_PRINTK
+- pushl %eax
+- pushl %ecx
+- pushl %edx
+- pushl %es
+- pushl %ds
+ cld
- pushl %eax
- pushl %ecx
- pushl %edx
-@@ -393,17 +463,16 @@ ignore_int:
movl $(__KERNEL_DS),%eax
movl %eax,%ds
movl %eax,%es
@@ -1424,9 +1398,10 @@
- pushl 24(%esp)
- pushl 32(%esp)
- pushl 40(%esp)
-+ pushl 28(%esp)
-+ pushl 28(%esp)
-+ pushl 28(%esp)
++ pushl 12(%esp)
++ pushl 12(%esp)
++ pushl 12(%esp)
++ pushl 12(%esp)
pushl $int_msg
#ifdef CONFIG_EARLY_PRINTK
call early_printk
@@ -1434,13 +1409,15 @@
call printk
#endif
- addl $(5*4),%esp
-+ addl $(4*4),%esp
- popl %ds
- popl %es
- popl %edx
-@@ -412,32 +481,50 @@ ignore_int:
+- popl %ds
+- popl %es
+- popl %edx
+- popl %ecx
+- popl %eax
#endif
- iret
+- iret
++1: hlt
++ jmp 1b
-/*
- * Real beginning of normal "text" segment
@@ -1503,9 +1480,12 @@
-ready: .byte 0
-
int_msg:
- .asciz "Unknown interrupt or fault at EIP %p %p %p\n"
+- .asciz "Unknown interrupt or fault at EIP %p %p %p\n"
++ .asciz "Unknown interrupt, stack: %p %p %p %p\n"
-@@ -465,10 +552,12 @@ idt_descr:
+ /*
+ * The IDT and GDT 'descriptors' are a strange 48-bit object
+@@ -465,10 +521,12 @@ idt_descr:
# boot GDT descriptor (later on used by CPU#0):
.word 0 # 32 bit align gdt_desc.address
@@ -1519,7 +1499,7 @@
/*
* The boot_gdt_table must mirror the equivalent in setup.S and is
* used only for booting.
-@@ -476,13 +565,13 @@ cpu_gdt_descr:
+@@ -476,13 +534,13 @@ cpu_gdt_descr:
.align L1_CACHE_BYTES
ENTRY(boot_gdt_table)
.fill GDT_ENTRY_BOOT_CS,8,0
@@ -1536,7 +1516,7 @@
ENTRY(cpu_gdt_table)
.quad 0x0000000000000000 /* NULL descriptor */
.quad 0x0000000000000000 /* 0x0b reserved */
-@@ -497,10 +586,10 @@ ENTRY(cpu_gdt_table)
+@@ -497,10 +555,10 @@ ENTRY(cpu_gdt_table)
.quad 0x0000000000000000 /* 0x53 reserved */
.quad 0x0000000000000000 /* 0x5b reserved */
@@ -1551,7 +1531,7 @@
.quad 0x0000000000000000 /* 0x80 TSS descriptor */
.quad 0x0000000000000000 /* 0x88 LDT descriptor */
-@@ -510,24 +599,30 @@ ENTRY(cpu_gdt_table)
+@@ -510,24 +568,30 @@ ENTRY(cpu_gdt_table)
* They code segments and data segments have fixed 64k limits,
* the transfer segment sizes are set at run time.
*/
@@ -1593,7 +1573,7 @@
+#endif
diff -urNp linux-2.6.17.11/arch/i386/kernel/i386_ksyms.c linux-2.6.17.11/arch/i386/kernel/i386_ksyms.c
--- linux-2.6.17.11/arch/i386/kernel/i386_ksyms.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/i386_ksyms.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/i386_ksyms.c 2006-09-01 16:20:28.000000000 -0400
@@ -3,12 +3,16 @@
#include <asm/checksum.h>
#include <asm/desc.h>
@@ -1613,7 +1593,7 @@
EXPORT_SYMBOL(__get_user_2);
diff -urNp linux-2.6.17.11/arch/i386/kernel/init_task.c linux-2.6.17.11/arch/i386/kernel/init_task.c
--- linux-2.6.17.11/arch/i386/kernel/init_task.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/init_task.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/init_task.c 2006-09-01 16:20:28.000000000 -0400
@@ -42,5 +42,5 @@ EXPORT_SYMBOL(init_task);
* per-CPU TSS segments. Threads are completely 'soft' on Linux,
* no more per-task TSS's.
@@ -1623,7 +1603,7 @@
diff -urNp linux-2.6.17.11/arch/i386/kernel/ioport.c linux-2.6.17.11/arch/i386/kernel/ioport.c
--- linux-2.6.17.11/arch/i386/kernel/ioport.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/ioport.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/ioport.c 2006-09-01 16:20:28.000000000 -0400
@@ -16,6 +16,7 @@
#include <linux/stddef.h>
#include <linux/slab.h>
@@ -1675,7 +1655,7 @@
regs->eflags = (regs->eflags & ~X86_EFLAGS_IOPL) | t->iopl;
diff -urNp linux-2.6.17.11/arch/i386/kernel/irq.c linux-2.6.17.11/arch/i386/kernel/irq.c
--- linux-2.6.17.11/arch/i386/kernel/irq.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/irq.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/irq.c 2006-09-01 16:20:28.000000000 -0400
@@ -91,7 +91,7 @@ fastcall unsigned int do_IRQ(struct pt_r
int arg1, arg2, ebx;
@@ -1709,7 +1689,7 @@
" xchgl %%ebx,%%esp \n"
diff -urNp linux-2.6.17.11/arch/i386/kernel/ldt.c linux-2.6.17.11/arch/i386/kernel/ldt.c
--- linux-2.6.17.11/arch/i386/kernel/ldt.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/ldt.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/ldt.c 2006-09-01 16:20:28.000000000 -0400
@@ -103,6 +103,19 @@ int init_new_context(struct task_struct
retval = copy_ldt(&mm->context, &old_mm->context);
up(&old_mm->context.sem);
@@ -1755,7 +1735,7 @@
if (oldmode)
diff -urNp linux-2.6.17.11/arch/i386/kernel/module.c linux-2.6.17.11/arch/i386/kernel/module.c
--- linux-2.6.17.11/arch/i386/kernel/module.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/module.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/module.c 2006-09-01 16:20:28.000000000 -0400
@@ -21,6 +21,7 @@
#include <linux/fs.h>
#include <linux/string.h>
@@ -1877,7 +1857,7 @@
printk(KERN_ERR "module %s: Unknown relocation: %u\n",
diff -urNp linux-2.6.17.11/arch/i386/kernel/process.c linux-2.6.17.11/arch/i386/kernel/process.c
--- linux-2.6.17.11/arch/i386/kernel/process.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/process.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/process.c 2006-09-01 16:20:28.000000000 -0400
@@ -69,7 +69,7 @@ EXPORT_SYMBOL(boot_option_idle_override)
*/
unsigned long thread_saved_pc(struct task_struct *tsk)
@@ -1887,8 +1867,8 @@
}
/*
-@@ -294,7 +294,7 @@ void show_regs(struct pt_regs * regs)
- printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, smp_processor_id());
+@@ -296,7 +296,7 @@ void show_regs(struct pt_regs * regs)
+ 0xffff & regs->xcs,regs->eip, smp_processor_id());
print_symbol("EIP is at %s\n", regs->eip);
- if (user_mode_vm(regs))
@@ -1896,7 +1876,7 @@
printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp);
printk(" EFLAGS: %08lx %s (%s %.*s)\n",
regs->eflags, print_tainted(), system_utsname.release,
-@@ -343,8 +343,8 @@ int kernel_thread(int (*fn)(void *), voi
+@@ -345,8 +345,8 @@ int kernel_thread(int (*fn)(void *), voi
regs.ebx = (unsigned long) fn;
regs.edx = (unsigned long) arg;
@@ -1907,7 +1887,7 @@
regs.orig_eax = -1;
regs.eip = (unsigned long) kernel_thread_helper;
regs.xcs = __KERNEL_CS;
-@@ -366,7 +366,7 @@ void exit_thread(void)
+@@ -369,7 +369,7 @@ void exit_thread(void)
/* The process may have allocated an io port bitmap... nuke it. */
if (unlikely(NULL != t->io_bitmap_ptr)) {
int cpu = get_cpu();
@@ -1916,7 +1896,7 @@
kfree(t->io_bitmap_ptr);
t->io_bitmap_ptr = NULL;
-@@ -386,6 +386,9 @@ void flush_thread(void)
+@@ -389,6 +389,9 @@ void flush_thread(void)
{
struct task_struct *tsk = current;
@@ -1926,7 +1906,7 @@
memset(tsk->thread.debugreg, 0, sizeof(unsigned long)*8);
memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
/*
-@@ -418,7 +421,7 @@ int copy_thread(int nr, unsigned long cl
+@@ -421,7 +424,7 @@ int copy_thread(int nr, unsigned long cl
struct task_struct *tsk;
int err;
@@ -1935,7 +1915,7 @@
*childregs = *regs;
childregs->eax = 0;
childregs->esp = esp;
-@@ -461,6 +464,11 @@ int copy_thread(int nr, unsigned long cl
+@@ -464,6 +467,11 @@ int copy_thread(int nr, unsigned long cl
if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
goto out;
@@ -1947,7 +1927,7 @@
desc = p->thread.tls_array + idx - GDT_ENTRY_TLS_MIN;
desc->a = LDT_entry_a(&info);
desc->b = LDT_entry_b(&info);
-@@ -625,7 +633,11 @@ struct task_struct fastcall * __switch_t
+@@ -628,7 +636,11 @@ struct task_struct fastcall * __switch_t
struct thread_struct *prev = &prev_p->thread,
*next = &next_p->thread;
int cpu = smp_processor_id();
@@ -1960,7 +1940,7 @@
/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
-@@ -648,11 +660,23 @@ struct task_struct fastcall * __switch_t
+@@ -651,11 +663,23 @@ struct task_struct fastcall * __switch_t
savesegment(fs, prev->fs);
savesegment(gs, prev->gs);
@@ -1984,7 +1964,7 @@
/*
* Restore %fs and %gs if needed.
*
-@@ -806,8 +830,18 @@ asmlinkage int sys_set_thread_area(struc
+@@ -809,8 +833,18 @@ asmlinkage int sys_set_thread_area(struc
struct desc_struct *desc;
int cpu, idx;
@@ -2003,7 +1983,7 @@
idx = info.entry_number;
/*
-@@ -839,8 +873,17 @@ asmlinkage int sys_set_thread_area(struc
+@@ -842,8 +876,17 @@ asmlinkage int sys_set_thread_area(struc
desc->a = LDT_entry_a(&info);
desc->b = LDT_entry_b(&info);
}
@@ -2021,7 +2001,7 @@
put_cpu();
return 0;
-@@ -896,9 +939,27 @@ asmlinkage int sys_get_thread_area(struc
+@@ -899,9 +942,27 @@ asmlinkage int sys_get_thread_area(struc
return 0;
}
@@ -2055,7 +2035,7 @@
+#endif
diff -urNp linux-2.6.17.11/arch/i386/kernel/ptrace.c linux-2.6.17.11/arch/i386/kernel/ptrace.c
--- linux-2.6.17.11/arch/i386/kernel/ptrace.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/ptrace.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/ptrace.c 2006-09-01 16:20:28.000000000 -0400
@@ -17,6 +17,7 @@
#include <linux/audit.h>
#include <linux/seccomp.h>
@@ -2105,7 +2085,7 @@
force_sig_info(SIGTRAP, &info, tsk);
diff -urNp linux-2.6.17.11/arch/i386/kernel/reboot.c linux-2.6.17.11/arch/i386/kernel/reboot.c
--- linux-2.6.17.11/arch/i386/kernel/reboot.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/reboot.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/reboot.c 2006-09-01 16:20:28.000000000 -0400
@@ -25,7 +25,7 @@
void (*pm_power_off)(void);
EXPORT_SYMBOL(pm_power_off);
@@ -2223,7 +2203,7 @@
mach_reboot();
diff -urNp linux-2.6.17.11/arch/i386/kernel/setup.c linux-2.6.17.11/arch/i386/kernel/setup.c
--- linux-2.6.17.11/arch/i386/kernel/setup.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/setup.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/setup.c 2006-09-01 16:20:28.000000000 -0400
@@ -88,7 +88,11 @@ struct cpuinfo_x86 new_cpu_data __initda
struct cpuinfo_x86 boot_cpu_data __read_mostly = { 0, 0, 0, 0, -1, 1, 0, 0, -1 };
EXPORT_SYMBOL(boot_cpu_data);
@@ -2258,7 +2238,7 @@
parse_cmdline_early(cmdline_p);
diff -urNp linux-2.6.17.11/arch/i386/kernel/signal.c linux-2.6.17.11/arch/i386/kernel/signal.c
--- linux-2.6.17.11/arch/i386/kernel/signal.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/signal.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/signal.c 2006-09-01 16:20:28.000000000 -0400
@@ -351,7 +351,17 @@ static int setup_frame(int sig, struct k
goto give_sigsegv;
}
@@ -2307,7 +2287,7 @@
if (test_thread_flag(TIF_RESTORE_SIGMASK))
diff -urNp linux-2.6.17.11/arch/i386/kernel/smpboot.c linux-2.6.17.11/arch/i386/kernel/smpboot.c
--- linux-2.6.17.11/arch/i386/kernel/smpboot.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/smpboot.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/smpboot.c 2006-09-01 16:20:28.000000000 -0400
@@ -1069,7 +1069,7 @@ static int __cpuinit __smp_prepare_cpu(i
/* init low mem mapping */
@@ -2319,7 +2299,7 @@
wait_for_completion(&done);
diff -urNp linux-2.6.17.11/arch/i386/kernel/syscall_table.S linux-2.6.17.11/arch/i386/kernel/syscall_table.S
--- linux-2.6.17.11/arch/i386/kernel/syscall_table.S 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/syscall_table.S 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/syscall_table.S 2006-09-01 16:20:28.000000000 -0400
@@ -1,3 +1,4 @@
+.section .rodata,"a", at progbits
ENTRY(sys_call_table)
@@ -2327,7 +2307,7 @@
.long sys_exit
diff -urNp linux-2.6.17.11/arch/i386/kernel/sysenter.c linux-2.6.17.11/arch/i386/kernel/sysenter.c
--- linux-2.6.17.11/arch/i386/kernel/sysenter.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/sysenter.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/sysenter.c 2006-09-01 16:20:28.000000000 -0400
@@ -24,7 +24,7 @@ extern asmlinkage void sysenter_entry(vo
void enable_sep_cpu(void)
{
@@ -2355,8 +2335,8 @@
}
diff -urNp linux-2.6.17.11/arch/i386/kernel/sys_i386.c linux-2.6.17.11/arch/i386/kernel/sys_i386.c
--- linux-2.6.17.11/arch/i386/kernel/sys_i386.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/sys_i386.c 2006-08-12 08:17:55.000000000 -0400
-@@ -99,6 +99,191 @@ out:
++++ linux-2.6.17.11/arch/i386/kernel/sys_i386.c 2006-09-01 16:20:28.000000000 -0400
+@@ -100,6 +100,191 @@ out:
return err;
}
@@ -2550,7 +2530,7 @@
unsigned long n;
diff -urNp linux-2.6.17.11/arch/i386/kernel/traps.c linux-2.6.17.11/arch/i386/kernel/traps.c
--- linux-2.6.17.11/arch/i386/kernel/traps.c 2006-08-07 00:18:54.000000000 -0400
-+++ linux-2.6.17.11/arch/i386/kernel/traps.c 2006-08-12 08:17:55.000000000 -0400
++++ linux-2.6.17.11/arch/i386/kernel/traps.c 2006-09-01 16:20:31.000000000 -0400
@@ -28,6 +28,7 @@
#include <linux/utsname.h>
#include <linux/kprobes.h>
@@ -2661,11 +2641,11 @@
if (ud2 != 0x0b0f)
goto no_bug;
- if (__get_user(line, (unsigned short __user *)(eip + 2)))
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/grsecurity-2.1.9-2.6.17.11.patch?r1=1.1&r2=1.1.2.1&f=u
More information about the pld-cvs-commit
mailing list