aboutsummaryrefslogtreecommitdiff
path: root/src/system.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-05-06 23:21:13 -0400
committerKevin O'Connor <kevin@koconnor.net>2009-05-06 23:21:13 -0400
commitf969a08f033ab9ea23404a4709d045d0623afbc9 (patch)
treed802f0e782c8fe8bb544e20c76faba42c788fade /src/system.c
parent3d292137cd5e0ef7791b3f8ba22238da7f033c2e (diff)
downloadseabios-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.c3
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;
}