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