Author: qboosh Date: Tue Dec 19 12:39:17 2006 GMT Module: SOURCES Tag: HEAD ---- Log message: - updated for 2.4.33.6
---- Files affected: SOURCES: grsecurity-2.1.9-2.4.33-200608131429.patch (1.4 -> 1.5) ---- Diffs: ================================================================ Index: SOURCES/grsecurity-2.1.9-2.4.33-200608131429.patch diff -u SOURCES/grsecurity-2.1.9-2.4.33-200608131429.patch:1.4 SOURCES/grsecurity-2.1.9-2.4.33-200608131429.patch:1.5 --- SOURCES/grsecurity-2.1.9-2.4.33-200608131429.patch:1.4 Thu Nov 23 10:24:24 2006 +++ SOURCES/grsecurity-2.1.9-2.4.33-200608131429.patch Tue Dec 19 13:39:12 2006 @@ -7617,9 +7617,8 @@ spec_fn_table[value](); } -diff -urNp linux-2.4.33/drivers/char/mem.c linux-2.4.33/drivers/char/mem.c ---- linux-2.4.33/drivers/char/mem.c.orig 2006-08-16 14:13:22.855971000 +0200 -+++ linux-2.4.33/drivers/char/mem.c 2006-08-16 14:17:16.085971000 +0200 +--- linux-2.4.33/drivers/char/mem.c.orig 2006-12-19 11:55:37.439505000 +0100 ++++ linux-2.4.33/drivers/char/mem.c 2006-12-19 12:17:25.919505000 +0100 @@ -22,6 +22,7 @@ #include <linux/tty.h> #include <linux/capability.h> @@ -7676,13 +7675,20 @@ if (p < (unsigned long) high_memory) { wrote = count; if (count > (unsigned long) high_memory - p) -@@ -404,7 +425,23 @@ static inline size_t read_zero_pagealign +@@ -394,6 +415,7 @@ static inline size_t read_zero_pagealign + /* For private mappings, just map in zero pages. */ + for (vma = find_vma(mm, addr); vma; vma = vma->vm_next) { + unsigned long count; ++ int zres; + + if (vma->vm_start > addr || (vma->vm_flags & VM_WRITE) == 0) + goto out_up; +@@ -404,7 +426,23 @@ static inline size_t read_zero_pagealign count = size; zap_page_range(mm, addr, count); -- zeromap_page_range(addr, count, PAGE_COPY); -+ zeromap_page_range(addr, count, vma->vm_page_prot); -+ +- if (zeromap_page_range(addr, count, PAGE_COPY)) ++ zres = zeromap_page_range(addr, count, vma->vm_page_prot); +#if defined(CONFIG_GRKERNSEC_PAX_SEGMEXEC) || defined(CONFIG_GRKERNSEC_PAX_RANDEXEC) + if (vma->vm_flags & VM_MIRROR) { + unsigned long addr_m; @@ -7698,10 +7704,11 @@ + addr, vma->vm_start); + } +#endif ++ if (zres) + break; size -= count; - buf += count; -@@ -527,6 +564,15 @@ static loff_t memory_lseek(struct file * +@@ -528,6 +566,15 @@ static loff_t memory_lseek(struct file * static int open_port(struct inode * inode, struct file * filp) { @@ -7717,7 +7724,7 @@ return capable(CAP_SYS_RAWIO) ? 0 : -EPERM; } -@@ -584,6 +630,11 @@ static int mmap_kmem(struct file * file, +@@ -585,6 +632,11 @@ static int mmap_kmem(struct file * file, unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; unsigned long size = vma->vm_end - vma->vm_start; @@ -7729,7 +7736,7 @@ /* * If the user is not attempting to mmap a high memory address then * the standard mmap_mem mechanism will work. High memory addresses -@@ -619,7 +670,6 @@ static int mmap_kmem(struct file * file, +@@ -620,7 +672,6 @@ static int mmap_kmem(struct file * file, #define full_lseek null_lseek #define write_zero write_null #define read_full read_zero @@ -7737,7 +7744,7 @@ #define open_kmem open_mem static struct file_operations mem_fops = { -@@ -700,6 +750,11 @@ static int memory_open(struct inode * in +@@ -701,6 +752,11 @@ static int memory_open(struct inode * in case 10: filp->f_op = &anon_file_operations; break; @@ -7749,7 +7756,7 @@ default: return -ENXIO; } -@@ -728,6 +783,9 @@ void __init memory_devfs_register (void) +@@ -729,6 +785,9 @@ void __init memory_devfs_register (void) {8, "random", S_IRUGO | S_IWUSR, &random_fops}, {9, "urandom", S_IRUGO | S_IWUSR, &urandom_fops}, {10, "anon", S_IRUGO | S_IWUSR, &anon_file_operations}, ================================================================ ---- CVS-web: http://cvs.pld-linux.org/SOURCES/grsecurity-2.1.9-2.4.33-200608131429.patch?r1=1.4&r2=1.5&f=u _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit