rpms/kernel/devel linux-2.6-execshield.patch,1.85,1.86
Dave Jones (davej)
fedora-extras-commits at redhat.com
Mon Feb 18 18:49:30 UTC 2008
Author: davej
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25699
Modified Files:
linux-2.6-execshield.patch
Log Message:
factor out common code.
linux-2.6-execshield.patch:
Index: linux-2.6-execshield.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/linux-2.6-execshield.patch,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -r1.85 -r1.86
--- linux-2.6-execshield.patch 18 Feb 2008 17:03:16 -0000 1.85
+++ linux-2.6-execshield.patch 18 Feb 2008 18:49:20 -0000 1.86
@@ -41,24 +41,28 @@
index a7d50a5..86e35cb 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
-@@ -847,3 +847,42 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
+@@ -847,3 +847,39 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
unsigned long range_end = mm->brk + 0x02000000;
return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
}
+
-+void arch_add_exec_range(struct mm_struct *mm, unsigned long limit)
++static void modify_cs(struct mm_struct *mm, unsigned long limit)
+{
-+ if (limit > mm->context.exec_limit) {
-+ mm->context.exec_limit = limit;
-+ set_user_cs(&mm->context.user_cs, limit);
-+ if (mm == current->mm) {
-+ preempt_disable();
-+ load_user_cs_desc(smp_processor_id(), mm);
-+ preempt_enable();
-+ }
++ mm->context.exec_limit = limit;
++ set_user_cs(&mm->context.user_cs, limit);
++ if (mm == current->mm) {
++ preempt_disable();
++ load_user_cs_desc(smp_processor_id(), mm);
++ preempt_enable();
+ }
+}
+
++void arch_add_exec_range(struct mm_struct *mm, unsigned long limit)
++{
++ if (limit > mm->context.exec_limit)
++ modify_cs(mm, limit);
++}
++
+void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end)
+{
+ struct vm_area_struct *vma;
@@ -68,14 +72,7 @@
+ for (vma = mm->mmap; vma; vma = vma->vm_next)
+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
-+
-+ mm->context.exec_limit = limit;
-+ set_user_cs(&mm->context.user_cs, limit);
-+ if (mm == current->mm) {
-+ preempt_disable();
-+ load_user_cs_desc(smp_processor_id(), mm);
-+ preempt_enable();
-+ }
++ modify_cs(mm, limit);
+ }
+}
+
More information about the fedora-extras-commits
mailing list