summaryrefslogtreecommitdiff
path: root/memdisk
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2006-10-24 16:39:20 -0700
committerH. Peter Anvin <hpa@zytor.com>2006-10-24 16:39:20 -0700
commit06194a9dc9b93997146f59b0065847fa7c48f265 (patch)
tree629aaccd8fccc1b7c48aeb20a5b8ef0f89f7746f /memdisk
parent5b118ef282d2067b98335d084f4050e47707df83 (diff)
downloadsyslinux-06194a9dc9b93997146f59b0065847fa7c48f265.tar.gz
memdisk: $PnP Installation Check structure length is byte 5, not 2
Diffstat (limited to 'memdisk')
-rw-r--r--memdisk/setup.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/memdisk/setup.c b/memdisk/setup.c
index 745cfe4a..556d1996 100644
--- a/memdisk/setup.c
+++ b/memdisk/setup.c
@@ -507,15 +507,16 @@ static uint32_t pnp_install_check(void)
{
uint32_t *seg;
unsigned char *p, csum;
- int i;
+ int i, len;
for (seg = (uint32_t *)0xf0000; seg < (uint32_t *)0x100000; seg += 4) {
if (*seg == ('$'+('P' << 8)+('n' << 16)+('P' << 24))) {
p = (unsigned char *)seg;
- if (p[2] < 0x21)
+ len = p[5];
+ if (len < 0x21)
continue;
csum = 0;
- for (i = p[2]; i; i--)
+ for (i = len; i; i--)
csum += *p++;
if (csum != 0)
continue;