From 06194a9dc9b93997146f59b0065847fa7c48f265 Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Tue, 24 Oct 2006 16:39:20 -0700 Subject: [PATCH] memdisk: $PnP Installation Check structure length is byte 5, not 2 --- memdisk/setup.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/memdisk/setup.c b/memdisk/setup.c index 745cfe4..556d199 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; -- 2.7.4