Transform GDT limit and compare with that

This commit is contained in:
Stephen Michael Jothen 2022-06-03 21:21:18 +02:00
parent e011973593
commit 881b740eae

View file

@ -210,7 +210,7 @@ static relegated int GetDescriptor(struct Machine *m, int selector,
uint8_t buf[8];
DCHECK(m->gdt_base + m->gdt_limit <= m->real.n);
selector &= -8;
if (8 <= selector && selector + 8 <= m->gdt_limit) {
if (8 <= selector && selector + 8 <= m->gdt_limit + 1) {
SetReadAddr(m, m->gdt_base + selector, 8);
*out_descriptor = Read64(m->real.p + m->gdt_base + selector);
return 0;