From 3f25b281e7f00b16c3166faa4ef0258990944f93 Mon Sep 17 00:00:00 2001 From: xiaolangde Date: Mon, 3 Aug 2020 21:08:25 +0800 Subject: Windows Bootloader: pass correct compressed data size to decompressor. Because the ds segment register is modified when setting up the decompressor segment, loader length should be read from the cs segment. (#666) --- src/Boot/Windows/BootSector.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Boot/Windows/BootSector.asm b/src/Boot/Windows/BootSector.asm index 351b2c67..0d2bbdca 100644 --- a/src/Boot/Windows/BootSector.asm +++ b/src/Boot/Windows/BootSector.asm @@ -139,7 +139,7 @@ checksum_ok: push dx ; Decompress boot loader - mov cx, word ptr [start + TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET] + mov cx, word ptr cs:[start + TC_BOOT_SECTOR_LOADER_LENGTH_OFFSET] sub cx, TC_GZIP_HEADER_SIZE push cx ; Compressed data size push TC_BOOT_LOADER_COMPRESSED_BUFFER_OFFSET + TC_GZIP_HEADER_SIZE ; Compressed data -- cgit v1.2.3