[FAST486]
authorAleksandar Andrejevic <aandrejevic@reactos.org>
Thu, 7 May 2015 12:18:41 +0000 (12:18 +0000)
committerAleksandar Andrejevic <aandrejevic@reactos.org>
Thu, 7 May 2015 12:18:41 +0000 (12:18 +0000)
The NULL selector is valid in the LDT.

svn path=/trunk/; revision=67592

reactos/lib/fast486/common.inl

index 2754f98..e2527c6 100644 (file)
@@ -573,7 +573,7 @@ Fast486LoadSegmentInternal(PFAST486_STATE State,
         {
             /* Loading the stack segment */
 
-            if (GET_SEGMENT_INDEX(Selector) == 0)
+            if (!(Selector & SEGMENT_TABLE_INDICATOR) && GET_SEGMENT_INDEX(Selector) == 0)
             {
                 Fast486Exception(State, Exception);
                 return FALSE;
@@ -614,7 +614,7 @@ Fast486LoadSegmentInternal(PFAST486_STATE State,
             State->PrefetchValid = FALSE;
 #endif
 
-            if (GET_SEGMENT_INDEX(Selector) == 0)
+            if (!(Selector & SEGMENT_TABLE_INDICATOR) && GET_SEGMENT_INDEX(Selector) == 0)
             {
                 Fast486Exception(State, Exception);
                 return FALSE;
@@ -665,7 +665,7 @@ Fast486LoadSegmentInternal(PFAST486_STATE State,
         {
             /* Loading a data segment */
 
-            if (GET_SEGMENT_INDEX(Selector) != 0)
+            if (GET_SEGMENT_INDEX(Selector) != 0 || (Selector & SEGMENT_TABLE_INDICATOR))
             {
                 if (!GdtEntry.SystemType)
                 {