diff options
author | H. Peter Anvin <hpa@zytor.com> | 2006-10-24 16:39:20 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2006-10-24 16:39:20 -0700 |
commit | 06194a9dc9b93997146f59b0065847fa7c48f265 (patch) | |
tree | 629aaccd8fccc1b7c48aeb20a5b8ef0f89f7746f /memdisk | |
parent | 5b118ef282d2067b98335d084f4050e47707df83 (diff) | |
download | syslinux-06194a9dc9b93997146f59b0065847fa7c48f265.tar.gz |
memdisk: $PnP Installation Check structure length is byte 5, not 2
Diffstat (limited to 'memdisk')
-rw-r--r-- | memdisk/setup.c | 7 |
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; |