commit | f969a08f033ab9ea23404a4709d045d0623afbc9 | [log] [tgz] |
---|---|---|
author | Kevin O'Connor <kevin@koconnor.net> | Wed May 06 23:21:13 2009 -0400 |
committer | Kevin O'Connor <kevin@koconnor.net> | Wed May 06 23:21:13 2009 -0400 |
tree | d802f0e782c8fe8bb544e20c76faba42c788fade | |
parent | 3d292137cd5e0ef7791b3f8ba22238da7f033c2e [diff] |
Minor - verify e820 request is large enough to hold response.
diff --git a/src/system.c b/src/system.c index 798dc25..245e9cf 100644 --- a/src/system.c +++ b/src/system.c
@@ -274,7 +274,8 @@ handle_15e820(struct bregs *regs) { int count = GET_GLOBAL(e820_count); - if (regs->edx != 0x534D4150 || regs->bx >= count) { + if (regs->edx != 0x534D4150 || regs->bx >= count + || regs->ecx < sizeof(e820_list[0])) { set_code_fail(regs, RET_EUNSUPPORTED); return; }