From 59b191dc0476f0babff6605f61abfa0607fe3572 Mon Sep 17 00:00:00 2001 From: Andy Lutomirski Date: Wed, 4 Dec 2019 12:30:45 -0800 Subject: [PATCH] modify_ldt.2, set_thread_area.2: Fix type of base_addr Historically (before Linux 2.6.23), base_addr was unsigned long for 32-bit code and unsigned int for 64-bit code. In other words, it was always a 32-bit value. When the ldt.h header files were unified, the type became unsigned int on all systems. Update modify_ldt.2 and set_thread_area.2 accordingly. Indeed, on x86, the GDT and LDT specify 32-bit bases for code and data segments, and this has nothing to do with the kernel. Reported-by: "Metzger, Markus T" Signed-off-by: Andy Lutomirski Signed-off-by: Michael Kerrisk --- man2/modify_ldt.2 | 2 +- man2/set_thread_area.2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/man2/modify_ldt.2 b/man2/modify_ldt.2 index 0db6efea4..ae979ed41 100644 --- a/man2/modify_ldt.2 +++ b/man2/modify_ldt.2 @@ -79,7 +79,7 @@ structure is defined in \fI\fP as: .EX struct user_desc { unsigned int entry_number; - unsigned long base_addr; + unsigned int base_addr; unsigned int limit; unsigned int seg_32bit:1; unsigned int contents:2; diff --git a/man2/set_thread_area.2 b/man2/set_thread_area.2 index b2f0882ed..3b6b22efd 100644 --- a/man2/set_thread_area.2 +++ b/man2/set_thread_area.2 @@ -67,7 +67,7 @@ to a structure of the following type: .EX struct user_desc { unsigned int entry_number; - unsigned long base_addr; + unsigned int base_addr; unsigned int limit; unsigned int seg_32bit:1; unsigned int contents:2;