projects/linux·commit 12aaa085

[PATCH] i386 / desc_empty macro is incorrect

12aaa085 · Zachary Amsden <[email protected]> · 2005-08-16 12:05:09 -07:00

Chuck Ebbert noticed that the desc_empty macro is incorrect.  Fix it.

Thankfully, this is not used as a security check, but it can falsely
overwrite TLS segments with carefully chosen base / limits.  I do not
believe this is an issue in practice, but it is a kernel bug.

Signed-off-by: Zachary Amsden <[email protected]>
Signed-off-by: Chris Wright <[email protected]>

[ x86-64 had the same problem, and the same fix. Linus ]

Signed-off-by: Linus Torvalds <[email protected]>
Commit
12aaa0855b39b5464db953fedf399fa91ee365ed
Parents
5153f7e6

Changes

2 files changed · +2 −2

FileStatusAddDelContent
include/asm-i386/processor.hmodified+1−1View file
include/asm-x86_64/processor.hmodified+1−1View file

include/asm-i386/processor.h

View file
diff --git a/include/asm-i386/processor.h b/include/asm-i386/processor.h
index 5d06e6b..d0d8b01 100644
--- a/include/asm-i386/processor.h
+++ b/include/asm-i386/processor.h
@@ -29,7 +29,7 @@ struct desc_struct {
};
#define desc_empty(desc) \
- (!((desc)->a + (desc)->b))
+ (!((desc)->a | (desc)->b))
#define desc_equal(desc1, desc2) \
(((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b))

include/asm-x86_64/processor.h

View file
diff --git a/include/asm-x86_64/processor.h b/include/asm-x86_64/processor.h
index 106f666..85549e6 100644
--- a/include/asm-x86_64/processor.h
+++ b/include/asm-x86_64/processor.h
@@ -32,7 +32,7 @@
#define ID_MASK 0x00200000
#define desc_empty(desc) \
- (!((desc)->a + (desc)->b))
+ (!((desc)->a | (desc)->b))
#define desc_equal(desc1, desc2) \
(((desc1)->a == (desc2)->a) && ((desc1)->b == (desc2)->b))