فهرست منبع

Kernel: Fix off-by-one error in Processor::write_raw_gdt_entry

Gunnar Beutner 4 سال پیش
والد
کامیت
e52051903b
1فایلهای تغییر یافته به همراه1 افزوده شده و 1 حذف شده
  1. 1 1
      Kernel/Arch/x86/common/Processor.cpp

+ 1 - 1
Kernel/Arch/x86/common/Processor.cpp

@@ -355,7 +355,7 @@ void Processor::write_raw_gdt_entry(u16 selector, u32 low, u32 high)
     u16 i = (selector & 0xfffc) >> 3;
     u16 i = (selector & 0xfffc) >> 3;
     u32 prev_gdt_length = m_gdt_length;
     u32 prev_gdt_length = m_gdt_length;
 
 
-    if (i > m_gdt_length) {
+    if (i >= m_gdt_length) {
         m_gdt_length = i + 1;
         m_gdt_length = i + 1;
         VERIFY(m_gdt_length <= sizeof(m_gdt) / sizeof(m_gdt[0]));
         VERIFY(m_gdt_length <= sizeof(m_gdt) / sizeof(m_gdt[0]));
         m_gdtr.limit = (m_gdt_length + 1) * 8 - 1;
         m_gdtr.limit = (m_gdt_length + 1) * 8 - 1;