diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2009-05-06 23:21:13 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2009-05-06 23:21:13 -0400 |
commit | f969a08f033ab9ea23404a4709d045d0623afbc9 (patch) | |
tree | d802f0e782c8fe8bb544e20c76faba42c788fade /src/system.c | |
parent | 3d292137cd5e0ef7791b3f8ba22238da7f033c2e (diff) | |
download | seabios-hppa-f969a08f033ab9ea23404a4709d045d0623afbc9.zip seabios-hppa-f969a08f033ab9ea23404a4709d045d0623afbc9.tar.gz seabios-hppa-f969a08f033ab9ea23404a4709d045d0623afbc9.tar.bz2 |
Minor - verify e820 request is large enough to hold response.
Diffstat (limited to 'src/system.c')
-rw-r--r-- | src/system.c | 3 |
1 files changed, 2 insertions, 1 deletions
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 @@ static void 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; } |