|
|
Subscribe / Log in / New account

Fix impressive call gate misuse DoS reported on bugtraq.

From:  Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
To:  BK Commits List:;
Subject:  Fix impressive call gate misuse DoS reported on bugtraq.
Date:  Thu, 14 Nov 2002 17:41:55 +0000

ChangeSet 1.848, 2002/11/14 09:41:55-08:00, torvalds@home.transmeta.com

	Fix impressive call gate misuse DoS reported on bugtraq.


# This patch includes the following deltas:
#	           ChangeSet	1.847   -> 1.848  
#	arch/i386/kernel/entry.S	1.42    -> 1.43   
#

 entry.S |   13 +++++++++++++
 1 files changed, 13 insertions(+)


diff -Nru a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
--- a/arch/i386/kernel/entry.S	Thu Nov 14 10:04:04 2002
+++ b/arch/i386/kernel/entry.S	Thu Nov 14 10:04:04 2002
@@ -66,7 +66,9 @@
 OLDSS		= 0x38
 
 CF_MASK		= 0x00000001
+TF_MASK		= 0x00000100
 IF_MASK		= 0x00000200
+DF_MASK		= 0x00000400 
 NT_MASK		= 0x00004000
 VM_MASK		= 0x00020000
 
@@ -134,6 +136,17 @@
 	movl %eax,EFLAGS(%esp)	#
 	movl %edx,EIP(%esp)	# Now we move them to their "normal" places
 	movl %ecx,CS(%esp)	#
+
+	#
+	# Call gates don't clear TF and NT in eflags like
+	# traps do, so we need to do it ourselves.
+	# %eax already contains eflags (but it may have
+	# DF set, clear that also)
+	#
+	andl $~(DF_MASK | TF_MASK | NT_MASK),%eax
+	pushl %eax
+	popfl
+
 	movl %esp, %ebx
 	pushl %ebx
 	andl $-8192, %ebx	# GET_THREAD_INFO
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Copyright © 2002, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds